PHP垃圾收集器和程式設計師的幽默

TP_funny發表於2014-12-05
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.25sAfter: Memory usage: 163.34MB (peak: 350.36MB), time: 99.55s


網友martindines評論:
Before: Memory usage: 152.71MB (peak: 335.9MB), time: 195.99sAfter: Memory usage: 164MB (peak: 308.02MB), time: 104.06s


網友eXtreme評論:
Before: Memory usage: 217.37MB (peak: 631.42MB), time: 313.4sAfter: Memory usage: 174.62MB (peak: 495.42MB), time: 152.3sAfter latest commit: Memory usage: 174.88MB (peak: 495.1MB), time: 67.73s


網友j0k3r評論:
Memory usage: 385.05MB (peak: 910.03MB), time: 138.81sMemory usage: 384.93MB (peak: 863.22MB), time: 26.12s


網友youbs評論:
Before:Memory usage: 2194.78MB (peak: 3077.39MB), time: 1324.69sAfter:Memory usage: 4542.54MB (peak: 4856.12MB), time: 232.66s


網友johnpbloch評論:
Before: Memory usage: 43.34MB (peak: 69.12MB), time: 26.57sAfter: 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.32sAfter:  Memory usage: 257.05MB (peak: 608.25MB), time: 24.34s


網友raphaelstolt評論:
Memory usage: 94.01MB (peak: 163.47MB), time: 11.24sMemory usage: 87.91MB (peak: 123.66MB), time: 3.38s


網友malaney評論:
Before:Memory usage: 207.13MB (peak: 705.58MB), time: 762.59sAfter:Memory usage: 164.42MB (peak: 469.22MB), time: 53.98s


哦,太多了….

你是不是也樂了,這些搞技術的人是多麼有趣一群人呀,生活中雖然有些寡言少語,但在工作中,在技術問題上,他們幽默、好學、歡鬧的性格才真正的體現出來。
來自:部落格園
相關閱讀
評論(1)

相關文章