20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.hpp"
27 #include "gc/shared/oopStorage.inline.hpp"
28 #include "gc/shared/oopStorageSet.hpp"
29 #include "logging/log.hpp"
30 #include "memory/allocation.hpp"
31 #include "memory/resourceArea.hpp"
32 #include "memory/universe.hpp"
33 #include "oops/access.inline.hpp"
34 #include "oops/method.hpp"
35 #include "oops/oop.inline.hpp"
36 #include "oops/weakHandle.inline.hpp"
37 #include "prims/resolvedMethodTable.hpp"
38 #include "runtime/handles.inline.hpp"
39 #include "runtime/interfaceSupport.inline.hpp"
40 #include "runtime/mutexLocker.hpp"
41 #include "runtime/safepointVerifiers.hpp"
42 #include "runtime/timerTrace.hpp"
43 #include "utilities/concurrentHashTable.inline.hpp"
44 #include "utilities/concurrentHashTableTasks.inline.hpp"
45 #include "utilities/macros.hpp"
46
47 // 2^24 is max size
48 static const size_t END_SIZE = 24;
49 // If a chain gets to 32 something might be wrong
50 static const size_t GROW_HINT = 32;
51
52 static const size_t ResolvedMethodTableSizeLog = 10;
53
54 unsigned int method_hash(const Method* method) {
55 unsigned int name_hash = method->name()->identity_hash();
56 unsigned int signature_hash = method->signature()->identity_hash();
57 return name_hash ^ signature_hash;
58 }
59
60 typedef ConcurrentHashTable<ResolvedMethodTableConfig,
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.hpp"
27 #include "gc/shared/oopStorage.inline.hpp"
28 #include "gc/shared/oopStorageSet.hpp"
29 #include "logging/log.hpp"
30 #include "memory/allocation.hpp"
31 #include "memory/resourceArea.hpp"
32 #include "memory/universe.hpp"
33 #include "oops/access.inline.hpp"
34 #include "oops/method.hpp"
35 #include "oops/oop.inline.hpp"
36 #include "oops/weakHandle.inline.hpp"
37 #include "prims/resolvedMethodTable.hpp"
38 #include "runtime/handles.inline.hpp"
39 #include "runtime/interfaceSupport.inline.hpp"
40 #include "runtime/mutexLocker.inline.hpp"
41 #include "runtime/safepointVerifiers.hpp"
42 #include "runtime/timerTrace.hpp"
43 #include "utilities/concurrentHashTable.inline.hpp"
44 #include "utilities/concurrentHashTableTasks.inline.hpp"
45 #include "utilities/macros.hpp"
46
47 // 2^24 is max size
48 static const size_t END_SIZE = 24;
49 // If a chain gets to 32 something might be wrong
50 static const size_t GROW_HINT = 32;
51
52 static const size_t ResolvedMethodTableSizeLog = 10;
53
54 unsigned int method_hash(const Method* method) {
55 unsigned int name_hash = method->name()->identity_hash();
56 unsigned int signature_hash = method->signature()->identity_hash();
57 return name_hash ^ signature_hash;
58 }
59
60 typedef ConcurrentHashTable<ResolvedMethodTableConfig,
|