PHP垃圾收集器和程序员的幽默
Composer是一个深受程序员喜欢的PHP依赖关系管理工具。最近它的源代码上的一处改动引起了大家热烈的讨论。改动其实只是增加了一行代码: gc_disable(); ,但为什么要增加这行代码的原因却让人很费解。 估计普通的PHP程序员对这行代码并不知道是干嘛的。但单
Composer是一个深受程序员喜欢的PHP依赖关系管理工具。最近它的源代码上的一处改动引起了大家热烈的讨论。改动其实只是增加了一行代码:gc_disable();
,但为什么要增加这行代码的原因却让人很费解。
估计普通的PHP程序员对这行代码并不知道是干嘛的。但单从语义的字面意思上可以猜出,它是要禁止PHP的垃圾收集器。没错,就是这个意思。
给那些想寻求技术解释的人说明一下,在Composer里,PHP的垃圾收集器浪费了大量的CUP资源,它试图收集由于Composer在解决程序依赖问题时候产生的成千上万的对象(这些对象是Composer用来表达依赖包内部规则的)。对象在不断的生产,它就一遍又一遍的收集,但事实上它什么都没收集到,但每次对象的生产都会触发它再次收集。
禁止PHP的垃圾收集器虽然阻止了PHP的高级功能,但却释放了大量的内存,这样,Composer有足够的内存来做自己的事情,而不是让它们浪费在什么垃圾都收集不到的活动中。经过这样的修改后,很多人都报告内存使用量大幅度下降。
为什么这个问题这么久了才被人发现?看起来原因是性能优化工具无法检测到垃圾收集器的工作。很显然,这是性能优化工具的问题,期望以后后有所改进。但大多数情况下,这PHP的这个特征并不会成为一个问题,我不建议你们都在自己的项目中禁止垃圾收集器的工作。 在大多数情况下,PHP的垃圾收集器是非常有用的,只是在我们的Composer工具里它出现了问题。
上面的这段话是这段代码的修改人Seldaek在Hacker News上给大家的解释。
说的很清楚明白,消除了大家的疑惑,但这不是本文的重点,本文要说的重点是大家对这一重大修改的反应,全部体现在了Github的评论里。太欢乐了。你会发现程序员是最幽默的,下面选几个例子:
网友clemherreman评论:
Before: Memory usage: 163.66MB (peak: 403.82MB), time: 246.25s After: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55sログイン後にコピー
网友martindines评论:
Before: Memory usage: 152.71MB (peak: 335.9MB), time: 195.99s After: Memory usage: 164MB (peak: 308.02MB), time: 104.06sログイン後にコピー
网友eXtreme评论:
Before: Memory usage: 217.37MB (peak: 631.42MB), time: 313.4s After: Memory usage: 174.62MB (peak: 495.42MB), time: 152.3s After latest commit: Memory usage: 174.88MB (peak: 495.1MB), time: 67.73sログイン後にコピー
网友j0k3r评论:
Memory usage: 385.05MB (peak: 910.03MB), time: 138.81s Memory usage: 384.93MB (peak: 863.22MB), time: 26.12sログイン後にコピー
网友youbs评论:
Before: Memory usage: 2194.78MB (peak: 3077.39MB), time: 1324.69s After: Memory usage: 4542.54MB (peak: 4856.12MB), time: 232.66sログイン後にコピー
网友johnpbloch评论:
Before: Memory usage: 43.34MB (peak: 69.12MB), time: 26.57s After: Memory usage: 43.67MB (peak: 60.27MB), time: 7.01sログイン後にコピー
网友o评论:
Our builds are now faster than ever!ログイン後にコピー
网友oscherler评论:
Before: Memory usage: 272.95MB (peak: 898.45MB), time: 144.32s After: Memory usage: 257.05MB (peak: 608.25MB), time: 24.34sログイン後にコピー
网友raphaelstolt评论:
Memory usage: 94.01MB (peak: 163.47MB), time: 11.24s Memory usage: 87.91MB (peak: 123.66MB), time: 3.38sログイン後にコピー
网友malaney评论:
Before: Memory usage: 207.13MB (peak: 705.58MB), time: 762.59s After: Memory usage: 164.42MB (peak: 469.22MB), time: 53.98sログイン後にコピー
哦,太多了….
你是不是也乐了,这些搞技术的人是多么有趣一群人呀,生活中虽然有些寡言少语,但在工作中,在技术问题上,他们幽默、好学、欢闹的性格才真正的体现出来。
原文地址:PHP垃圾收集器和程序员的幽默, 感谢原作者分享。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています
