請教 關於記憶體洩漏的檢測方法
直接在opensessioninviewfilter那裡掛掉了,跟不進程式碼阿。
最奇怪的就是為什麼在第一次select 200條資料時,只佔用了20M左右。
直到下一次檢索2,3條資料時,一下子暴到200M呢?
[GC 24760K->22810K(29880K), 0.0023559 secs]
Hibernate: select ...
(這裡檢索200條資料,檢索完了。回收時一共才20M)
[GC 24794K->22929K(29880K), 0.0022210 secs]
session MainMenuInfo : common.util.MainMenuInfo@e6df19
session UserInfo : common.util.LoginUserInfo@14e8936
session K0200MenuForm : K02.form.K0200MenuForm@61b29f
session K02_TEMP_K0201001OrgSelectForm : K02.form.K0201001OrgSelectForm@1a626ac
session org.apache.struts.action.LOCALE : ja
class org.apache.catalina.core.ApplicationFilterChain
[GC 24790K->23612K(29880K), 0.0057686 secs]
[GC 25435K->25408K(29880K), 0.0071911 secs]
[GC 27230K->27203K(29880K), 0.0062332 secs]
[GC 29027K->28998K(31180K), 0.0061798 secs]
[Full GC[Unloading class sun.reflect.GeneratedMethodAccessor123]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor2]
[Unloading class sun.reflect.GeneratedMethodAccessor154]
[Unloading class sun.reflect.GeneratedMethodAccessor155]
[Unloading class sun.reflect.GeneratedMethodAccessor150]
[Unloading class sun.reflect.GeneratedMethodAccessor147]
[Unloading class sun.reflect.GeneratedMethodAccessor146]
[Unloading class sun.reflect.GeneratedMethodAccessor148]
[Unloading class sun.reflect.GeneratedMethodAccessor152]
[Unloading class sun.reflect.GeneratedMethodAccessor89]
[Unloading class sun.reflect.GeneratedMethodAccessor110]
[Unloading class sun.reflect.GeneratedMethodAccessor86]
[Unloading class sun.reflect.GeneratedMethodAccessor151]
[Unloading class sun.reflect.GeneratedConstructorAccessor38]
[Unloading class sun.reflect.GeneratedMethodAccessor153]
[Unloading class sun.reflect.GeneratedMethodAccessor88]
28998K->24461K(31180K), 0.3669290 secs]
[GC 27069K->27026K(43908K), 0.0046235 secs]
[GC 29629K->29591K(43908K), 0.0042978 secs]
[GC 32195K->32155K(43908K), 0.0049096 secs]
[GC 34759K->34720K(43908K), 0.0050124 secs]
[GC 37324K->37285K(43908K), 0.0050249 secs]
[GC 39889K->39849K(43908K), 0.0051174 secs]
[GC 42453K->42414K(45468K), 0.0050942 secs]
[Full GC 42414K->40955K(45468K), 0.3308669 secs]
[GC 45381K->45315K(73444K), 0.0067525 secs]
[GC 49741K->49675K(73444K), 0.0080516 secs]
[GC 54101K->54035K(73444K), 0.0078046 secs]
[GC 58461K->58395K(73444K), 0.0077898 secs]
[GC 62820K->62755K(73444K), 0.0079532 secs]
[GC 67182K->67114K(73444K), 0.0078652 secs]
[GC 71541K->71475K(76304K), 0.0085567 secs]
[Full GC[Unloading class sun.reflect.GeneratedMethodAccessor49]
71475K->71475K(76304K), 0.2570003 secs]
[GC 78764K->78656K(127228K), 0.0804133 secs]
[GC 86466K->86350K(127228K), 0.0164222 secs]
[GC 94161K->94043K(127228K), 0.0194583 secs]
[GC 101854K->101739K(127228K), 0.0153807 secs]
[GC 109548K->109432K(127228K), 0.0188826 secs]
[GC 117242K->117126K(127228K), 0.0209809 secs]
[GC 124937K->124819K(133208K), 0.0165180 secs]
[Full GC 124819K->124819K(133208K), 0.2503483 secs]
[GC 137837K->137645K(222296K), 0.0957457 secs]
[GC 151442K->151237K(222296K), 0.0276680 secs]
[GC 165034K->164829K(222296K), 0.0261955 secs]
[GC 178625K->178421K(222296K), 0.0403532 secs]
[GC 192222K->192017K(222296K), 0.0248087 secs]
[GC 205821K->205609K(222296K), 0.0247825 secs]
[GC 219412K->219201K(233216K), 0.0272929 secs]
[Full GC 219201K->219201K(233216K), 0.2625688 secs]
[GC 233783K->233562K(260160K), 0.1095519 secs]
(下一次檢索2,3條資料時的垃圾回收)
Hibernate: select stf.staff_Id, stf.staff_Name...
(真正開始執行檢索)
還有就是測試資料庫一共才10M左右,為什麼一兩次檢索就會弄出這麼多記憶體呢?
開發階段,不讓研究這個問題-_-!
就讓截了幾張圖證明問題在spring框架裡(因為確實錯誤資訊在spring的filter裡面,沒執行到程式碼就爆了)
雖然我知道是程式碼裡面有記憶體洩漏,但是找不到,不會找。
希望高手指點一下
相關文章
- 急!請教用optimizeit檢測記憶體洩漏的問題?記憶體
- MFC 檢測記憶體洩漏的方法記憶體
- iOS檢測記憶體洩漏iOS記憶體
- 如何檢測記憶體洩漏記憶體
- C++ 程式記憶體洩漏檢測方法C++記憶體
- JavaScript記憶體洩漏檢測工具JavaScript記憶體
- vs中檢測記憶體洩漏的方法記憶體
- 關於java中的記憶體洩漏Java記憶體
- 使用 Instruments 檢測記憶體洩漏記憶體
- 檢測並排除記憶體洩漏 (轉)記憶體
- 關於PHP記憶體洩漏的問題PHP記憶體
- C/C++記憶體洩漏及檢測C++記憶體
- VC++6.0中記憶體洩漏檢測C++記憶體
- Android檢測記憶體洩漏之leakcanaryAndroid記憶體
- 如何在 Linux 下檢測記憶體洩漏Linux記憶體
- iOS記憶體洩漏自動檢測工具PLeakSnifferiOS記憶體
- Node.js 應用的記憶體洩漏問題的檢測方法Node.js記憶體
- linux中記憶體洩漏的檢測(一)最簡單的方法Linux記憶體
- 記憶體洩漏記憶體
- 如何檢測記憶體洩漏——過載new和delete記憶體delete
- 記憶體洩漏的有關知識記憶體
- 如何檢查Javascript中的記憶體洩漏JavaScript記憶體
- 分析記憶體洩漏和goroutine洩漏記憶體Go
- 記憶體洩漏的原因記憶體
- 使用VLD進行記憶體洩漏檢測(release + debug)記憶體
- C++--問題27--如何檢測記憶體洩漏C++記憶體
- 怎麼用弱引用實現記憶體洩漏檢測記憶體
- js記憶體洩漏JS記憶體
- Java記憶體洩漏Java記憶體
- webView 記憶體洩漏WebView記憶體
- Javascript記憶體洩漏JavaScript記憶體
- Visual C++ 2010 啟動記憶體洩漏檢測功能,VLD 記憶體洩漏檢查 都超簡單(2)C++記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(上)Android優化記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(下)Android優化記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(中)Android優化記憶體
- Android記憶體優化——記憶體洩露檢測分析方法Android優化記憶體洩露
- 基於Android Studio的記憶體洩漏檢測與解決全攻略Android記憶體
- WebView引起的記憶體洩漏WebView記憶體