您好,登錄后才能下訂單哦!
如何利用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了。
看完上述內容,你們掌握如何利用S_MEMORY_INSPECTOR分析內存泄漏問題的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。