2012-01-11 52 views
0

我在跟蹤文件中的以下行:瞭解的Xdebug內存的增量增加

0.5927 12212144 2780040.00 -> require_once(E:\web\lib\nusoap\nusoap.php) E:\web\some_path\file.php:28 

我知道需要這個文件將耗資內存2.7MB。僅僅需要文件會花費那麼多是否正常?需要文件時會影響內存成本?

我還有另外13條線是需要的,每條線至少需要350,000KB的內存。我有兩條線,每條線需要1MB。同樣,這種事情是否正常?

編輯#1:

我開始考慮這是由於內存泄漏。我們有一個腳本,會使內存使用量增加,但當它下降時,內存將增加10MB +(ish)。

在一個點上,當阿帕奇達到使用450 MB 000,我們開始走出這樣的內存不足的錯誤:

PHP Fatal error: Out of memory (allocated x) (tried to allocate y bytes) in/path_to/file.php(1758) on line z 
+0

低於回答您的問題請選擇一個答案。我想說你不可能得到像編寫XDebug的Derick更好的答案。 – hakre 2012-01-11 20:20:32

回答

1

是的。這很正常。 nusoap庫非常大,但在PHP內部,它以二進制表示形式存儲。你需要認識到需求本身不佔用空間,而是包含的文件。

我不太明白你最後的「.00」是從哪裏來的。我剛剛檢查過代碼,並沒有創建浮點數。

歡呼聲, 德里克

+0

我將跟蹤文件導入到Excel中以過濾掉行,並添加了.00。 – TekiusFanatikus 2012-01-11 18:40:21

0

再次,就是這樣的事情正常嗎?

是的,這是正常的。如果你想了解三角洲,請查看xdebug源代碼,它可以很好地解釋它。首先請閱讀xdebug文檔,IIRC網站告訴你,你不應該把這些數字作爲真實數據(並且它看起來像你在某種程度上的問題)。

另請注意,xdebug不適用於生產用途。如果您需要生產內存使用量,則需要其他工具。

+0

我試圖找到內存泄漏。我認爲使用這種方法是事實上的進行方式。 – TekiusFanatikus 2012-01-11 18:31:52

+0

Xdebug可以用來跟蹤與內存相關的問題,但是我不會在三角洲發現問題。你可以用它來得到一個受過教育的猜測,你的內存相關問題在哪裏,但是xdebug在這裏取決於PHP本身提供的內容,例如PHP爲包含保留了一些空間,內存可以大於包含的文件本身(內存預留可以成本高昂,所以大多數情況下程序會一次預留更多,然後隨着時間消耗緩衝區)。你說什麼樣的內存泄漏? – hakre 2012-01-11 18:35:19

+0

查看我編輯的問題。謝謝! – TekiusFanatikus 2012-01-11 18:46:59