Mercurial > hg > graal-compiler
comparison src/share/vm/oops/annotations.hpp @ 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 | 35431a769282 |
children | 927a311d00f9 |
comparison
equal
deleted
inserted
replaced
7950:6cf2530f7fd3 | 7956:16fb9f942703 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2012, 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. |
32 #include "utilities/globalDefinitions.hpp" | 32 #include "utilities/globalDefinitions.hpp" |
33 | 33 |
34 | 34 |
35 class ClassLoaderData; | 35 class ClassLoaderData; |
36 class outputStream; | 36 class outputStream; |
37 class KlassSizeStats; | |
37 | 38 |
38 typedef Array<u1> AnnotationArray; | 39 typedef Array<u1> AnnotationArray; |
39 | 40 |
40 // Class to hold the various types of annotations. The only metadata that points | 41 // Class to hold the various types of annotations. The only metadata that points |
41 // to this is InstanceKlass, or another Annotations instance if this is a | 42 // to this is InstanceKlass, or another Annotations instance if this is a |
80 Array<AnnotationArray*>* ma, | 81 Array<AnnotationArray*>* ma, |
81 Array<AnnotationArray*>* mpa, | 82 Array<AnnotationArray*>* mpa, |
82 Array<AnnotationArray*>* mda, TRAPS); | 83 Array<AnnotationArray*>* mda, TRAPS); |
83 void deallocate_contents(ClassLoaderData* loader_data); | 84 void deallocate_contents(ClassLoaderData* loader_data); |
84 DEBUG_ONLY(bool on_stack() { return false; }) // for template | 85 DEBUG_ONLY(bool on_stack() { return false; }) // for template |
86 | |
87 // Sizing (in words) | |
85 static int size() { return sizeof(Annotations) / wordSize; } | 88 static int size() { return sizeof(Annotations) / wordSize; } |
89 #if INCLUDE_SERVICES | |
90 void collect_statistics(KlassSizeStats *sz) const; | |
91 #endif | |
86 | 92 |
87 // Constructor to initialize to null | 93 // Constructor to initialize to null |
88 Annotations() : _class_annotations(NULL), | 94 Annotations() : _class_annotations(NULL), |
89 _fields_annotations(NULL), | 95 _fields_annotations(NULL), |
90 _methods_annotations(NULL), | 96 _methods_annotations(NULL), |
140 bool is_klass() const { return false; } | 146 bool is_klass() const { return false; } |
141 private: | 147 private: |
142 void set_methods_annotations_of(instanceKlassHandle ik, | 148 void set_methods_annotations_of(instanceKlassHandle ik, |
143 int idnum, AnnotationArray* anno, | 149 int idnum, AnnotationArray* anno, |
144 Array<AnnotationArray*>** md_p, TRAPS); | 150 Array<AnnotationArray*>** md_p, TRAPS); |
145 | 151 static julong count_bytes(Array<AnnotationArray*>* p); |
146 public: | 152 public: |
147 const char* internal_name() const { return "{constant pool}"; } | 153 const char* internal_name() const { return "{constant pool}"; } |
148 #ifndef PRODUCT | 154 #ifndef PRODUCT |
149 void print_on(outputStream* st) const; | 155 void print_on(outputStream* st) const; |
150 #endif | 156 #endif |