php常駐程式記憶體洩露的簡單解決
php原本設計是用了一次就丟了的,這樣用基本沒有記憶體洩露的問題,就是每次要重新構建速度會慢。
php常駐的情況記憶體洩露發生的概率就很高了
php主流常駐框架是解決方案也是用了就丟,但不是立刻就丟:
1·roadrunner
.rr.json的配置檔案
{
"http": {
"address": "127.0.2.1:80",
"workers": {
"command": "php psr-worker.php",
"pool": {
"numWorkers": 4,
"maxJobs": 4800
}
}
}
}
maxJobs 4800表示接受4800個請求後,重新啟新的服務代替舊的服務,舊的服務佔用的記憶體放掉就沒有問題了。
經過效能測試,相比沒有重啟設定,效能只損失了十分之一,完全可以接受。
2·workerman 手冊裡有講
max_request屬性,主要用於解決php業務程式碼bug引起的記憶體洩露問題
3·swoole 手冊裡也有講 max_request
https://wiki.swoole.com/wiki/diff/?id=300&version=1&compare=current
處理訊息佇列的消費者也是常駐的,php命令列程式的解決方案也是重啟。
命令列程式會一直迴圈處理佇列的資訊,我們可以讓程式執行一分鐘後結束,然後用定時任務每分鐘重啟它,用Linux-crontab或者gocron都可以,就是和佇列的長連線總是要重聯。
java的話據說幾個月才會一次,據阿里巴巴開發手冊記載:
【推薦】給 JVM 環境引數設定-XX:+HeapDumpOnOutOfMemoryError 引數,讓 JVM 碰到 OOM
場景時輸出 dump 資訊。
說明:OOM 的發生是有概率的,甚至相隔數月才出現一例,出錯時的堆內資訊對解決問題非常有幫助。
我覺得java也可以用一個月左右主動重啟一次的方法來解決記憶體洩露的問題
python的記憶體洩漏問題
如果對python的一些特性不熟,就容易寫出有記憶體洩漏的程式碼比如
def a(hey = [], b = 1);
hey.append(b)
return hey
a()
a(b=2)
python沒有static靜態變數, 但hey因為是陣列, 就可以理解成靜態變數
一直如上面呼叫的話,陣列會巨大無比,直到程式崩了。
如果python能顯式的宣告static變數的話,就會相對容易的發現這樣的程式碼bug。
相關文章
- react 記憶體洩露常見問題解決方案React記憶體洩露
- 簡單的記憶體“洩露”和“溢位”記憶體
- JAVA記憶體洩露的原因及解決Java記憶體洩露
- 解決git記憶體洩露問題Git記憶體洩露
- Android 記憶體洩露詳解Android記憶體洩露
- Pprof定位Go程式記憶體洩露Go記憶體洩露
- SHBrowseForFolder 記憶體洩露記憶體洩露
- JS高程中的垃圾回收機制與常見記憶體洩露的解決方法JS記憶體洩露
- MixPHP:基於 Swoole 的常駐記憶體型 PHP 框架PHP記憶體框架
- 一行程式碼教你解決FlutterPlatformViews記憶體洩露(memory leak)行程FlutterPlatformView記憶體洩露
- 記憶體溢位和記憶體洩露記憶體溢位記憶體洩露
- Lowmemorykiller記憶體洩露分析記憶體洩露
- win10驅動記憶體洩露如何解決_win10記憶體洩露處理方法Win10記憶體洩露
- C程式記憶體洩露檢測工具——ValgrindC程式記憶體洩露
- ArkTS 的記憶體快照與記憶體洩露除錯記憶體洩露除錯
- 使用 mtrace 分析 “記憶體洩露”記憶體洩露
- 實戰Go記憶體洩露Go記憶體洩露
- Android中使用Handler造成記憶體洩露的分析和解決Android記憶體洩露
- android Handler導致的記憶體洩露Android記憶體洩露
- ThreadLocal原始碼解讀和記憶體洩露分析thread原始碼記憶體洩露
- Linux記憶體洩露案例分析和記憶體管理分享Linux記憶體洩露
- nodejs爬蟲記憶體洩露排查NodeJS爬蟲記憶體洩露
- Java記憶體洩漏解決之道Java記憶體
- Python實現記憶體洩露排查的示例Python記憶體洩露
- Go 記憶體洩漏?不是那麼簡單!Go記憶體
- netty 堆外記憶體洩露排查盛宴Netty記憶體洩露
- 乾貨分享:淺談記憶體洩露記憶體洩露
- Spring Boot heapdump洩露記憶體分析方法Spring Boot記憶體
- 線上記憶體洩露定位--memleak工具記憶體洩露
- java中如何檢視記憶體洩露Java記憶體洩露
- PHP 記憶體洩漏分析定位PHP記憶體
- Handler記憶體洩漏分析及解決記憶體
- Android 輕鬆解決記憶體洩漏Android記憶體
- Android效能優化:手把手帶你全面瞭解 記憶體洩露 & 解決方案Android優化記憶體洩露
- 記一次"記憶體洩露"排查過程記憶體洩露
- swoole等常駐記憶體框架真的比php-fpm要高併發嗎?記憶體框架PHP
- PHP 多程式與訊號中斷實現多工常駐記憶體管理【Master/Worker 模型】PHP記憶體AST模型
- 一個 Vue 頁面的記憶體洩露分析Vue記憶體洩露