28 #include "classfile/javaClasses.inline.hpp"
29 #include "classfile/stringTable.hpp"
30 #include "classfile/systemDictionary.hpp"
31 #include "gc/shared/collectedHeap.hpp"
32 #include "gc/shared/oopStorage.inline.hpp"
33 #include "gc/shared/oopStorageSet.hpp"
34 #include "logging/log.hpp"
35 #include "logging/logStream.hpp"
36 #include "memory/allocation.inline.hpp"
37 #include "memory/filemap.hpp"
38 #include "memory/heapShared.inline.hpp"
39 #include "memory/resourceArea.hpp"
40 #include "memory/universe.hpp"
41 #include "oops/access.inline.hpp"
42 #include "oops/compressedOops.hpp"
43 #include "oops/oop.inline.hpp"
44 #include "oops/typeArrayOop.inline.hpp"
45 #include "oops/weakHandle.inline.hpp"
46 #include "runtime/atomic.hpp"
47 #include "runtime/handles.inline.hpp"
48 #include "runtime/mutexLocker.hpp"
49 #include "runtime/safepointVerifiers.hpp"
50 #include "runtime/timerTrace.hpp"
51 #include "runtime/interfaceSupport.inline.hpp"
52 #include "services/diagnosticCommand.hpp"
53 #include "utilities/concurrentHashTable.inline.hpp"
54 #include "utilities/concurrentHashTableTasks.inline.hpp"
55 #include "utilities/macros.hpp"
56 #include "utilities/utf8.hpp"
57
58 // We prefer short chains of avg 2
59 const double PREF_AVG_LIST_LEN = 2.0;
60 // 2^24 is max size
61 const size_t END_SIZE = 24;
62 // If a chain gets to 100 something might be wrong
63 const size_t REHASH_LEN = 100;
64 // If we have as many dead items as 50% of the number of bucket
65 const double CLEAN_DEAD_HIGH_WATER_MARK = 0.5;
66
67 #if INCLUDE_CDS_JAVA_HEAP
68 inline oop read_string_from_compact_hashtable(address base_address, u4 offset) {
|
28 #include "classfile/javaClasses.inline.hpp"
29 #include "classfile/stringTable.hpp"
30 #include "classfile/systemDictionary.hpp"
31 #include "gc/shared/collectedHeap.hpp"
32 #include "gc/shared/oopStorage.inline.hpp"
33 #include "gc/shared/oopStorageSet.hpp"
34 #include "logging/log.hpp"
35 #include "logging/logStream.hpp"
36 #include "memory/allocation.inline.hpp"
37 #include "memory/filemap.hpp"
38 #include "memory/heapShared.inline.hpp"
39 #include "memory/resourceArea.hpp"
40 #include "memory/universe.hpp"
41 #include "oops/access.inline.hpp"
42 #include "oops/compressedOops.hpp"
43 #include "oops/oop.inline.hpp"
44 #include "oops/typeArrayOop.inline.hpp"
45 #include "oops/weakHandle.inline.hpp"
46 #include "runtime/atomic.hpp"
47 #include "runtime/handles.inline.hpp"
48 #include "runtime/mutexLocker.inline.hpp"
49 #include "runtime/safepointVerifiers.hpp"
50 #include "runtime/timerTrace.hpp"
51 #include "runtime/interfaceSupport.inline.hpp"
52 #include "services/diagnosticCommand.hpp"
53 #include "utilities/concurrentHashTable.inline.hpp"
54 #include "utilities/concurrentHashTableTasks.inline.hpp"
55 #include "utilities/macros.hpp"
56 #include "utilities/utf8.hpp"
57
58 // We prefer short chains of avg 2
59 const double PREF_AVG_LIST_LEN = 2.0;
60 // 2^24 is max size
61 const size_t END_SIZE = 24;
62 // If a chain gets to 100 something might be wrong
63 const size_t REHASH_LEN = 100;
64 // If we have as many dead items as 50% of the number of bucket
65 const double CLEAN_DEAD_HIGH_WATER_MARK = 0.5;
66
67 #if INCLUDE_CDS_JAVA_HEAP
68 inline oop read_string_from_compact_hashtable(address base_address, u4 offset) {
|