--- old/src/hotspot/share/utilities/hashtable.inline.hpp 2019-04-04 14:46:48.000000000 -0500 +++ new/src/hotspot/share/utilities/hashtable.inline.hpp 2019-04-04 14:46:47.000000000 -0500 @@ -43,6 +43,7 @@ for (int index = 0; index < _table_size; index++) { _buckets[index].clear(); } + _stats_rate = TableRateStatistics(); } @@ -52,6 +53,7 @@ // Called on startup, no locking needed initialize(table_size, entry_size, number_of_entries); _buckets = buckets; + _stats_rate = TableRateStatistics(); } template inline BasicHashtable::~BasicHashtable() { @@ -101,6 +103,11 @@ template inline void BasicHashtable::set_entry(int index, BasicHashtableEntry* entry) { _buckets[index].set_entry(entry); + if (entry != NULL) { + _stats_rate.add(); + } else { + _stats_rate.remove(); + } } @@ -108,12 +115,14 @@ entry->set_next(bucket(index)); _buckets[index].set_entry(entry); ++_number_of_entries; + _stats_rate.add(); } template inline void BasicHashtable::free_entry(BasicHashtableEntry* entry) { entry->set_next(_free_list); _free_list = entry; --_number_of_entries; + _stats_rate.remove(); } #endif // SHARE_UTILITIES_HASHTABLE_INLINE_HPP