--- old/src/hotspot/share/utilities/hashtable.inline.hpp 2019-09-26 22:30:01.730307209 +0800 +++ new/src/hotspot/share/utilities/hashtable.inline.hpp 2019-09-26 22:30:01.580301985 +0800 @@ -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(); } @@ -93,6 +95,11 @@ template inline void BasicHashtable::set_entry(int index, BasicHashtableEntry* entry) { _buckets[index].set_entry(entry); + if (entry != NULL) { + JFR_ONLY(_stats_rate.add();) + } else { + JFR_ONLY(_stats_rate.remove();) + } } @@ -100,12 +107,14 @@ entry->set_next(bucket(index)); _buckets[index].set_entry(entry); ++_number_of_entries; + JFR_ONLY(_stats_rate.add();) } template inline void BasicHashtable::free_entry(BasicHashtableEntry* entry) { entry->set_next(_free_list); _free_list = entry; --_number_of_entries; + JFR_ONLY(_stats_rate.remove();) } #endif // SHARE_VM_UTILITIES_HASHTABLE_INLINE_HPP