< prev index next >

src/hotspot/share/prims/resolvedMethodTable.cpp

Print this page
rev 56464 : 8231707: Improve Mutex inlining
Contributed-by: robbin.ehn@oracle.com, claes.redestad@oracle.com


  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,


< prev index next >