前日,github的PHP板塊驚現一段能夠提升70%運行效率的代碼,引發了全世界眾多網友的吐槽和調侃,“awesome!”、“well done!”、“PHP是世界第一語言!”平時不苟言笑,埋頭苦幹的程式設計師們充分發揮了其幽默的一面,github成為了歡樂的海洋。
先來看看這段神級的代碼:
這段程式碼所做的就是一件事情:禁用PHP的垃圾回收器。然後網友測試使用禁用PHP的垃圾回收器後帶來的效果就是:
Before: Memory usage: 163.66MB (peak: 403.82MB), time: 246.25s
Before: Memory usage: 152.71MB (peak: 335.9MB), time: 195.99s
After: Memory usage: 163.34MB (peak: 350.36MB), time: 995.降低到99.55秒!
After: Memory usage: 164MB (peak: 308.02MB), time: 104.064MB (peak: 308.02MB), time: 104.099.到104.06秒!
……總的說來,就是禁用垃圾回收器可以提升PHP70%運作效率。
既然,PHP的垃圾回收如此不靠譜,那麼它以前設計的初衷是什麼呢?
因為在C/C++中,記憶體管理是一件很麻煩的事情,記憶體的使用和釋放都需要程式設計師編寫程式手動操作,如果有所遺漏,就可能造成資源浪費甚至記憶體外洩。因此PHP在設計的時候為了規避這個問題,引入了垃圾回收器來用於自動釋放無用物件的記憶體。
值得一提的是PHP在運行循環回收演算法的時候,會產生額外的時間消耗。雖然在較小的專案中,這種額外消耗微乎其微,但是當運行大專案時,由於同時啟動了多個循環回收的線程,這種消耗將會產生很大的影響,最直觀的表現就是程式運行時間變長了。
禁用PHP的垃圾回收,是提高程式運作效率的最簡單粗暴的方式。這就如同腿腳受傷了,最簡單的方式就是截肢一樣。
當該神級代碼一公佈,github的程式設計師們便樂開了花:
首先到來的homm表達了對這種處理方式的驚訝以及不明白為什麼要這麼做,並客觀評價了這個處理方式看起來並不好:
接著到來的smileytechguy便開始調侃了:「恩,沒有註釋,讓我們把PHP的核心禁用了吧,我們也不會解釋為什麼這樣做的。」
然後就開始一發不可收拾了:
有打醬油的:
有吐槽和調侃的:
光是說PHP是世界第一語言的就有幾個國家的版本,話說只用幾段代碼就能提高70%效率,PHP世界第一語言當之無愧:
還有賣萌的:
PHP的垃圾回收機製成為大家的笑料,我們也很清楚簡單的禁用PHP垃圾回收並不能解決內存溢出等問題,PHP未來如何處理好內存管理與運行效率之間的矛盾將是一件任重而道遠的事。
以上就介紹了Github歡樂多 PHP神級程式碼引發吐槽熱,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。