Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/iterator.hpp @ 941:8b46c4d82093
4957990: Perm heap bloat in JVM
Summary: Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately.
Reviewed-by: jcoomes, jmasa, kvn, never
author | ysr |
---|---|
date | Wed, 02 Sep 2009 00:04:29 -0700 |
parents | 05f89f00a864 |
children | 89e0543e1737 54b3b351d6f9 |
comparison
equal
deleted
inserted
replaced
940:8624da129f0b | 941:8b46c4d82093 |
---|---|
23 */ | 23 */ |
24 | 24 |
25 // The following classes are C++ `closures` for iterating over objects, roots and spaces | 25 // The following classes are C++ `closures` for iterating over objects, roots and spaces |
26 | 26 |
27 class ReferenceProcessor; | 27 class ReferenceProcessor; |
28 class DataLayout; | |
28 | 29 |
29 // Closure provides abortability. | 30 // Closure provides abortability. |
30 | 31 |
31 class Closure : public StackObj { | 32 class Closure : public StackObj { |
32 protected: | 33 protected: |
59 assert(!must_remember_klasses(), "Should have overriden this method."); | 60 assert(!must_remember_klasses(), "Should have overriden this method."); |
60 return false; | 61 return false; |
61 } | 62 } |
62 | 63 |
63 virtual void remember_klass(Klass* k) { /* do nothing */ } | 64 virtual void remember_klass(Klass* k) { /* do nothing */ } |
65 | |
66 // In support of post-processing of weak references in | |
67 // ProfileData (MethodDataOop) objects; see, for example, | |
68 // VirtualCallData::oop_iterate(). | |
69 virtual const bool should_remember_mdo() const { return false; } | |
70 virtual void remember_mdo(DataLayout* v) { /* do nothing */ } | |
64 | 71 |
65 // If "true", invoke on nmethods (when scanning compiled frames). | 72 // If "true", invoke on nmethods (when scanning compiled frames). |
66 virtual const bool do_nmethods() const { return false; } | 73 virtual const bool do_nmethods() const { return false; } |
67 | 74 |
68 // The methods below control how object iterations invoking this closure | 75 // The methods below control how object iterations invoking this closure |