Mercurial > hg > truffle
comparison src/share/vm/oops/klass.cpp @ 7956:16fb9f942703
6479360: PrintClassHistogram improvements
Summary: jcmd <pid> GC.class_stats (UnlockDiagnosticVMOptions)
Reviewed-by: coleenp, hseigel, sla, acorn
Contributed-by: ioi.lam@oracle.com
author | acorn |
---|---|
date | Fri, 25 Jan 2013 15:06:18 -0500 |
parents | 90273fc0a981 |
children | 3c9bc17b9403 |
comparison
equal
deleted
inserted
replaced
7950:6cf2530f7fd3 | 7956:16fb9f942703 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
27 #include "classfile/dictionary.hpp" | 27 #include "classfile/dictionary.hpp" |
28 #include "classfile/systemDictionary.hpp" | 28 #include "classfile/systemDictionary.hpp" |
29 #include "classfile/vmSymbols.hpp" | 29 #include "classfile/vmSymbols.hpp" |
30 #include "gc_implementation/shared/markSweep.inline.hpp" | 30 #include "gc_implementation/shared/markSweep.inline.hpp" |
31 #include "gc_interface/collectedHeap.inline.hpp" | 31 #include "gc_interface/collectedHeap.inline.hpp" |
32 #include "memory/heapInspection.hpp" | |
32 #include "memory/metadataFactory.hpp" | 33 #include "memory/metadataFactory.hpp" |
33 #include "memory/oopFactory.hpp" | 34 #include "memory/oopFactory.hpp" |
34 #include "memory/resourceArea.hpp" | 35 #include "memory/resourceArea.hpp" |
35 #include "oops/instanceKlass.hpp" | 36 #include "oops/instanceKlass.hpp" |
36 #include "oops/klass.inline.hpp" | 37 #include "oops/klass.inline.hpp" |
622 ResourceMark rm; // Cannot print in debug mode without this | 623 ResourceMark rm; // Cannot print in debug mode without this |
623 st->print("%s", internal_name()); | 624 st->print("%s", internal_name()); |
624 obj->print_address_on(st); | 625 obj->print_address_on(st); |
625 } | 626 } |
626 | 627 |
628 #if INCLUDE_SERVICES | |
629 // Size Statistics | |
630 void Klass::collect_statistics(KlassSizeStats *sz) const { | |
631 sz->_klass_bytes = sz->count(this); | |
632 sz->_mirror_bytes = sz->count(java_mirror()); | |
633 sz->_secondary_supers_bytes = sz->count_array(secondary_supers()); | |
634 | |
635 sz->_ro_bytes += sz->_secondary_supers_bytes; | |
636 sz->_rw_bytes += sz->_klass_bytes + sz->_mirror_bytes; | |
637 } | |
638 #endif // INCLUDE_SERVICES | |
627 | 639 |
628 // Verification | 640 // Verification |
629 | 641 |
630 void Klass::verify_on(outputStream* st) { | 642 void Klass::verify_on(outputStream* st) { |
631 guarantee(!Universe::heap()->is_in_reserved(this), "Shouldn't be"); | 643 guarantee(!Universe::heap()->is_in_reserved(this), "Shouldn't be"); |