2009-07-18 101 views
0

簡單地說我是一個相當新的PHP編碼器,我想知道如果有人能指導我朝的最佳途徑,以改善代碼的性能,以及停止那些討厭的內存泄漏,我的主人是那些不具有APC或類似裝之一,所以它會都必須手工編碼-_-最佳做法,停止內存泄漏,提高性能

回答

2

我不認爲普通的內存泄漏(如忘記釋放對象或字符串)在PHP中很常見,但總的來說資源泄漏是。我有問題,有:

  • 數據庫連接 - 你真的應該叫pg_close/mysql_close /等。當你完成連接。儘管我認爲PHP連接池可以緩解這種情況(但可能會有其自身的問題)。

  • 圖片 - 如果您使用gd2擴展名打開或創建圖片,您需要image_destroy這些,否則它們將永遠佔用內存。數據大小方面的圖像往往很大。

請注意,如果您的腳本以純CGI(無HTTP服務器模塊)運行,則腳本退出時將有效清理資源。但是,在腳本運行期間可能仍然存在內存問題,特別是在圖像情況下,在單個腳本執行中執行許多操作並不罕見。

0

一般來說,PHP腳本不能泄漏內存。 php運行時管理其腳本的所有內存。腳本本身可能會泄漏內存,但是當php進程結束時會被回收。由於php主要用於處理http請求,並且這些請求通常會運行很短的時間,所以如果你正在泄漏一點內存,這就不成問題了。所以如果你使用php來處理非http任務,內存泄漏應該只關心你。性能應該比內存使用更值得關注。使用諸如xdebug之類的工具來分析您的代碼。

+0

,就像我喜歡使用的XDebug我曾提到我的主機不允許額外的已安裝,但謝謝:) – 2009-07-18 12:57:40