日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

關于java堆棧溢出的那些事

系統 2031 0

java.lang.OutOfMemoryError: Java heap space

在java程序運行中可能會報如上的錯誤,通常是在運行過程中內存占用了沒有別釋放造成的。

以前可能沒法跟蹤可能是很痛苦的事情,現在好了,我們有一個調試軟件可以用了,在生產環境下使用的jRockit軟件進行調試,是oracle公司出品的。

前兩天試用了一下真的很不錯。

前陣子有個程序跑2個禮拜左右就會堆棧溢出,始終找不到頭緒,后來使用jrockit才找到問題的出處。

jrockit是可以調試遠程程序也可以調試本地程序的。

具體調試步驟

(一)

啟動調試程序

?

如果是調試本地程序的話,啟動jrockit,然后啟動本地需要調試的程序,會在左側工具欄 本地目錄下創建一個連接為需要調試的程序,在上面點擊右鍵,就會啟動跟蹤。

如何跟蹤呢,我的辦法就是等,在跟蹤開始后,進行截圖,然后等程序運行一段時間后查找堆增長比較大的并且一直沒有釋放的變量。

(二)

然后在上面點擊右鍵,顯示分配跟蹤。

(三)

然后找到對應的方法,然后就去找問題吧,看看是不是那個地方有內存一直沒有釋放啊。

?

然后說點我自己的小經驗,也許是不對的,但是我在我的應用里面確實是有效的。

?

在經常需要調用的地方將變量設成全局的甚至是靜態的,我的操作是設成全局的了。圖省事呢。呵呵,因為我的變量時全局都要調用的而且是頻繁調用的。

用完的變量一定要記得讓它等于null,否則執行gc()貌似是不給回收的。

基本上jrockit跟蹤是很強的,都能夠找到你的問題所在,要仔細觀察,改完程序后記得再重新跟蹤下直到沒有內存泄露為止。

寫完手工。

題外話,寫多線程的時候建議使用線程池來操作。

關于java堆棧溢出的那些事


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 海晏县| 察哈| 德江县| 高雄县| 尼勒克县| 三门县| 饶阳县| 那坡县| 青神县| 新丰县| 铅山县| 库伦旗| 江津市| 万盛区| 五大连池市| 丹巴县| 阿拉善右旗| 博客| 庆元县| 上高县| 锦屏县| 丹巴县| 宁明县| 怀安县| 阿城市| 丰镇市| 平山县| 涿鹿县| 澎湖县| 广汉市| 松桃| 东乌| 确山县| 桂东县| 高青县| 河北省| 道孚县| 建宁县| 大田县| 南丹县| 大港区|