1. 程式人生 > >php7使用xhprof造成記憶體洩露問題

php7使用xhprof造成記憶體洩露問題

最近,同事遇到一個問題,頭疼了好多天。終於找到原因,特記下,以防後犯。

指令碼切換php7執行,一段時間以後指令碼就會報記憶體洩漏問題(但是該釋放記憶體的地方都已經做了處理

經過同事不斷的排查,最終定位在迴圈執行 函式體內的pdo->execute(array()) 這一行程式碼,傳參發生變化,記憶體就漲的特別快。走了n多彎路後,改為使用bindParam(PDOStatement::bindParam)“成功”解決了問題。

生活處處有驚喜!!!......在測試環境執行原來的程式碼,竟沒有復現問題。所以還是要繼續追究問題根源。。。最後定位到是xhprof的問題。

總結:測試環境未開啟xhprof,所以沒有報錯,正式環境開啟了導致記憶體洩漏。

  • xhprof 是facebook 開發的一個測試php效能的擴充套件

看了下php官方手冊:

xhprof php文件說明xhprof最後一次更新是在2013年。http://pecl.php.net/package/xhprof上的程式碼包,不支援php7,強行使用可能會出現意想不到的問題。

感謝這位博主給出的分析,大家可以仔細看下:https://blog.csdn.net/fanhengguang_php/article/details/60144471