它看起來像使用PHP腳本時遇到了典型的內存中斷問題。在「大」文件創建中降低腳本內存使用率
該腳本最初由其他人開發,可作爲XML站點地圖創建者,在大型網站上使用相當多的內存。
我認爲這個問題是由於算法在內存中保存的數據,直到作業完成,但挖到代碼,我發現腳本以這種方式工作有關:
- 打開的文件中輸出(將包含XML網站地圖的條目)在環路
- : ----用於向網站地圖被添加的每個條目,不使用fwrite
- 關閉文件
- 端
儘管內存中沒有巨大的數組或變量,但這種技術使用了大量的內存。
我認爲也許PHP在腳本末尾緩衝了fwrites和「沖洗」數據,所以我修改了代碼來關閉並打開每個第N條記錄的文件,但內存使用率仍然相同....我正在調試我的電腦上的腳本並觀察內存使用情況:當腳本執行運行時,內存分配增長。
是否有一種特殊的技術來指示PHP釋放未使用的內存,強制刷新緩衝區(如果有)?
感謝
我已經安裝了xdebug,但我很ch咽一個表現良好的IDE客戶端。記事本++也窒息:-)任何建議健壯(免費)的IDE客戶端?任何Dreamweaver CS3插件? – Riccardo 2010-06-15 16:29:57
@Riccardo如果您使用xdebug作爲分析器,您需要一個可以分析xdebug生成的轉儲文件的程序。請參閱http://xdebug.org/docs/profiler#introduction列出的程序。我在Windows上使用xdebug,使用WinCacheGrind分析轉儲文件。 – Max 2010-06-15 16:41:18
順便說一下,也許你應該尋找一個更嚴重的PHP IDE,我可以推薦PHP Eclipse或NetBeans,或者如果你不介意許可費,activestate komodo也是非常好的。據我所知,他們都可以使用xdebug作爲調試器(用於在PHP代碼中設置斷點等)。 – Max 2010-06-15 16:43:45