2013-02-17 42 views
0

我的web應用程序通過AJAX向我的PHP腳本進行了很多POST和GET調用。我發現我的服務器的內存使用情況是調用我的腳本導出爲PDF/Excel中,查找,插入/更新/刪除等時,PHP內存使用exit()清除?

無我的PHP腳本與exit()die()結束後達到一個相當低的水平。這可能會導致我的記憶問題?如果我在每個腳本的末尾添加exit()die(),是否會清除該給定腳本剛剛使用的內存?

+0

什麼庫是您使用導出PDF和Excel - 我懷疑這些是罪魁禍首比PHP本身更容易。 – Spudley 2013-02-17 21:49:45

+0

我使用TCPDF爲我的PDF導出...我不使用我的Excel導出的庫 – FastTrack 2013-02-17 21:51:07

+0

當腳本退出時,PHP已經清理了已用內存。僅僅因爲你的代碼沒有明確的exit()或die()調用並不意味着服務器奇蹟般地保持它以某種方式運行。 – 2013-02-17 22:13:15

回答

1

我不認爲exit()die()會有所作爲。

請確保您有免費的數據庫資源(結果集,連接等)。此外,請考慮您使用的所有擴展,並確保其中沒有人知道有關內存泄漏的錯誤,尤其是在使用特殊擴展的情況下。

如果您在Linux上,即使「空閒內存」爲「低」,您的服務器也不在磁盤上交換,這可能是由於磁盤高速緩存。那樣的話,一切都很好。請參閱:linuxatemyram.com
順便說一句,你從哪裏得到有關可用內存的信息?

+0

LOL ...愛那個網站,它真的很有意義。我認爲我的「免費」內存在現實中是16MB,在通過該站點閱讀後,我看到我仍然有360MB的空閒空間。我正在使用命令'free -m'來查看我目前的使用情況 – FastTrack 2013-02-17 21:55:54

+0

我接受了這個答案,因爲它讓我意識到我有多少Linux新手,並且我確實沒有由PHP引起的內存問題!非常感謝! – FastTrack 2013-02-17 22:02:07

3

exitdie與到達文件結尾基本相同。運行析構函數,ob_start級別刷新並結束,並且運行任何關閉函數。

然而,在任何PHP進程結束時,進程就像任何其他程序一樣結束。沒有記憶留下。