我有一個連續運行的多進程PHP(CLI)應用程序。我試圖優化內存使用情況,因爲每個進程使用的內存量限制了我可以在任何給定時間運行的分叉數量(因爲我有可用的有限內存量)。我嘗試了幾種方法。例如,按照preinheimer給出的建議,我重新編譯了PHP,禁用了所有擴展,然後只重新啓用了我的應用程序(mysql,curl,pcntl,posix和json)所需的擴展。但是,這並沒有減少內存使用量。它實際上略有增加。如何減少多進程PHP應用程序的內存佔用
我幾乎準備放棄多進程方法,但我正在做最後的努力,看看其他人是否有更好的想法來減少內存使用量。我將發佈我的替代方法,這涉及到我的應用程序的重大重構,下面。
非常感謝任何能幫助我解決這個挑戰的人!
雖然這不是一個真正的答案你的問題,但建議看看: 你有看看PHP的hiphop? PHP嘻哈重新編譯你的PHP到C++。最終這可能適用於您,但這取決於您如何編寫代碼以及用於函數的內容。我不知道它是否適用於pcntl,但根據我的經驗,它可能會大大提高速度和內存使用量。 – 2013-02-22 08:52:27
是的,我其實。我在研究這個問題時遇到了它的存在。我沒有嘗試HipHop的主要原因是因爲我沒有經驗(不是一個很好的理由,我知道)。這是一個很好的建議,我認爲它可以對這個問題形成一個很好的答案。如果你有經驗,你想在回答中提出一些想法嗎? – robguinness 2013-02-22 09:11:37