Github歡樂多,PHP神級代碼引發吐槽熱

jopen 10年前發布 | 7K 次閱讀 Github

        前日,github 的 PHP 板塊驚現一段能夠提升 70% 運行效率的代碼,引發了全世界眾多網友的吐槽和調侃,“awesome!”、“well done!”、“PHP 是世界第一語言!”平時不茍言笑,埋頭苦干的程序員們充分發揮了其幽默的一面,github 成為了歡樂的海洋。

        先來看看這一段神級的代碼:

Github歡樂多,PHP神級代碼引發吐槽熱

        這段代碼所做的就是一件事情:禁用 PHP 的垃圾回收器。然后網友測試在使用禁用 PHP 的垃圾回收器后帶來的效果就是:

        Before: Memory usage: 163.66MB (peak: 403.82MB), time: 246.25s
After: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55s
某個 PHP 程序運行所需時間從 246.25 秒降低到 99.55 秒!

        Before: Memory usage: 152.71MB (peak: 335.9MB), time: 195.99s
After: Memory usage: 164MB (peak: 308.02MB), time: 104.06s
某個 PHP 程序運行所需時間從 195.99 秒降低到 104.06 秒!

        ……

        總的說來,就是禁用垃圾回收器可以提升 PHP70% 運行效率。

        既然,PHP 的垃圾回收如此不靠譜,那么它以前設計的初衷是什么呢?

        因為在C/C++中,內存管理是一件很麻煩的事情,內存的使用和釋放都需要程序員編寫程序手動操作,如果有所遺漏,就可能造成資源浪費甚至內存泄露。因此 PHP 在設計的時候為了規避這個問題,引入了垃圾回收器來用于自動釋放無用對象的內存。

        值得一提的是 PHP 在運行循環回收算法的時候,會產生額外的時間消耗。雖然在較小的項目中,這種額外消耗微乎其微,但是當運行大項目時,由于同時啟動了多個循環回收的線程,這種消耗將會產生很大的影響,最直觀的表現就是程序運行時間變長了。

        禁用 PHP 的垃圾回收,是提高程序運行效率的最簡單粗暴的方式。這就如同腿腳受傷了,最簡單的方式就是截肢一樣。

        當該神級代碼一公布,github 的程序員們便樂開了花:

        首先到來的 homm 表達了對這種處理方式的驚訝以及不明白為什么要這么做,并客觀評價了這個處理方式看起來并不好:

Github歡樂多,PHP神級代碼引發吐槽熱

        接著到來的 smileytechguy 便開始調侃了:“恩,沒有注釋,讓我們把 PHP 的內核禁用了吧,我們也不會解釋為什么這樣做的。”

Github歡樂多,PHP神級代碼引發吐槽熱

        然后就開始一發不可收拾了:

        有打醬油的:

Github歡樂多,PHP神級代碼引發吐槽熱

Github歡樂多,PHP神級代碼引發吐槽熱

        有吐槽和調侃的:

Github歡樂多,PHP神級代碼引發吐槽熱

Github歡樂多,PHP神級代碼引發吐槽熱

Github歡樂多,PHP神級代碼引發吐槽熱

        光是說 PHP 是世界第一語言的就有幾個國家的版本,話說只用幾段代碼就能提高 70% 效率,PHP 世界第一語言當之無愧:

Github歡樂多,PHP神級代碼引發吐槽熱

Github歡樂多,PHP神級代碼引發吐槽熱

Github歡樂多,PHP神級代碼引發吐槽熱

        還有賣萌的:

Github歡樂多,PHP神級代碼引發吐槽熱

        PHP 的垃圾回收機制成為大家的笑料,我們也很清楚簡單的禁用 PHP 垃圾回收并不能解決內存溢出等問題,PHP 未來如何處理好內存管理與運行效率之間的矛盾將是一件任重而道遠的事情。

        載自慧都控件網: http://www.evget.com/article/2014/12/4/21900.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!