利用S_MEMORY_INSPECTOR分析内存泄漏问题
生活随笔
收集整理的這篇文章主要介紹了
利用S_MEMORY_INSPECTOR分析内存泄漏问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我在批量生成service order時,report運行幾個小時后,遇到out of memory exception:
SM04里發現我的report隨著時間的推移,消耗的內存越來越多:
如何找到出現memory leak的代碼的準確位置?
我的report里有個package size,類似于OPEN CURSOR和FETCH的design,比如package size是1000,那么每1000個service order創建成功后,清一次buffer,然后創建第二批1000個order,再清第二次buffer.
所以我只需要在兩次清buffer之后分別創建一個memory snapshot:
創建好之后tcode S_MEMORY_INSPECTOR, 比較兩個snapshot里的delta部分,即為引起memory leak的變量。這個transaction列出了變量所在的program name,剩下的事情就是去找能清除這些變量對應的API.
修改完之后成效顯著,修改之前一個user session跑一個小時內存consumtpion就超過了7GB,現在跑了一下午,每個session不超過2GB了。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的利用S_MEMORY_INSPECTOR分析内存泄漏问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 莫力布林棍在哪
- 下一篇: How to suppress emai