2016年6月25日
Java不支持實(shí)時(shí)內(nèi)存調(diào)試锻拘?
今天在調(diào)試Java程序時(shí),想看看char類型的數(shù)據(jù)在內(nèi)存中是如何存儲(chǔ)的击蹲,于是打開了Eclipse的memory調(diào)試窗口署拟,但是,memory窗口是灰的际邻,無(wú)法進(jìn)行任何操作。
經(jīng)過(guò)一番搜索芍阎,在Eclipse上沒(méi)有找到實(shí)時(shí)調(diào)試Java程序內(nèi)存(監(jiān)控或修改內(nèi)存世曾、堆heap、棧stack)的方法谴咸。
比較討厭的是轮听,Eclipse在Java development user guide幫助文檔中詳細(xì)的介紹了如何使用memory窗口調(diào)試內(nèi)存——Inspecting memory in the Memory view,然而并無(wú)卵用岭佳,memory窗口就是灰的血巍。
個(gè)人猜測(cè),很可能Java希望對(duì)使用者屏蔽內(nèi)存珊随、地址等傳統(tǒng)概念述寡,于是柿隙,JVM并不對(duì)外公開內(nèi)存細(xì)節(jié),未提供實(shí)時(shí)查看鲫凶、修改(虛擬)內(nèi)存的功能禀崖,當(dāng)然也就不存在實(shí)時(shí)內(nèi)存調(diào)試的方法。
其他內(nèi)存工具
不過(guò)螟炫,Java提供了一些其他很有用的內(nèi)存分析工具波附,例如:
-
jmap
jmap提供了java heap dump功能,可以生成heap快照昼钻,分析Java內(nèi)存溢出問(wèn)題掸屡。
參見診斷Java內(nèi)存溢出方法:Java heap dump觸發(fā)和分析