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記憶體洩露
- 難解決的記憶體洩露(OutOfMemory)問題!!!記憶體洩露
- 記憶體洩露記憶體洩露
- Java 記憶體洩露的理解與解決過程Java記憶體洩露
- JAVA 記憶體洩露詳解(原因、例子及解決)Java記憶體洩露
- 如何定位和解決記憶體洩露記憶體洩露
- .Net記憶體洩露原因及解決辦法記憶體洩露
- PHP的記憶體洩露問題與垃圾回收PHP記憶體洩露
- Android 記憶體洩露詳解Android記憶體洩露
- js記憶體洩露JS記憶體洩露
- JavaScript記憶體洩露JavaScript記憶體洩露
- 記憶體洩露嗎記憶體洩露
- SHBrowseForFolder 記憶體洩露記憶體洩露
- Pprof定位Go程式記憶體洩露Go記憶體洩露
- JS高程中的垃圾回收機制與常見記憶體洩露的解決方法JS記憶體洩露
- MixPHP:基於 Swoole 的常駐記憶體型 PHP 框架PHP記憶體框架
- JavaScript 中 4 種常見的記憶體洩露陷阱JavaScript記憶體洩露
- js記憶體洩露的原因JS記憶體洩露
- Java記憶體洩露的原因Java記憶體洩露
- JAVA 記憶體洩露的理解Java記憶體洩露
- IE中的記憶體洩露記憶體洩露
- 記憶體溢位和記憶體洩露記憶體溢位記憶體洩露
- Lowmemorykiller記憶體洩露分析記憶體洩露
- win10驅動記憶體洩露如何解決_win10記憶體洩露處理方法Win10記憶體洩露
- 記憶體洩露引起的問題記憶體洩露
- JavaScript中的記憶體洩露模式JavaScript記憶體洩露模式
- ThreaLocal記憶體洩露的問題記憶體洩露
- 一行程式碼教你解決FlutterPlatformViews記憶體洩露(memory leak)行程FlutterPlatformView記憶體洩露
- C程式記憶體洩露檢測工具——ValgrindC程式記憶體洩露
- 使用 mtrace 分析 “記憶體洩露”記憶體洩露
- 實戰Go記憶體洩露Go記憶體洩露
- 學習Java:記憶體洩露Java記憶體洩露
- 如何避免JavaScript的記憶體洩露及記憶體管理技巧JavaScript記憶體洩露
- ArkTS 的記憶體快照與記憶體洩露除錯記憶體洩露除錯
- 記一次Go websocket 專案記憶體洩露排查 + 使用Go pprof定位記憶體洩露GoWeb記憶體洩露