Mercurial > hg > graal-jvmci-8
diff agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java @ 4061:e3e363b2bf19
7108242: jinfo -permstat shouldn't report interned strings as part of perm
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Tue, 08 Nov 2011 20:42:26 -0800 |
parents | c18cbe5936b8 |
children | da91efe96a93 |
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java Tue Nov 08 17:29:57 2011 -0800 +++ b/agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java Tue Nov 08 20:42:26 2011 -0800 @@ -63,47 +63,9 @@ } public void run() { - printInternStringStatistics(); printClassLoaderStatistics(); } - private void printInternStringStatistics() { - class StringStat implements StringTable.StringVisitor { - private int count; - private long size; - private OopField stringValueField; - - StringStat() { - VM vm = VM.getVM(); - SystemDictionary sysDict = vm.getSystemDictionary(); - InstanceKlass strKlass = sysDict.getStringKlass(); - // String has a field named 'value' of type 'char[]'. - stringValueField = (OopField) strKlass.findField("value", "[C"); - } - - private long stringSize(Instance instance) { - // We include String content in size calculation. - return instance.getObjectSize() + - stringValueField.getValue(instance).getObjectSize(); - } - - public void visit(Instance str) { - count++; - size += stringSize(str); - } - - public void print() { - System.out.println(count + - " intern Strings occupying " + size + " bytes."); - } - } - - StringStat stat = new StringStat(); - StringTable strTable = VM.getVM().getStringTable(); - strTable.stringsDo(stat); - stat.print(); - } - private void printClassLoaderStatistics() { final PrintStream out = System.out; final PrintStream err = System.err;