< prev index next >
src/share/vm/utilities/hashtable.inline.hpp
Print this page
rev 9056 : 8185525: Add JFR event for DictionarySizes
Summary: Added TableStatistics event
Reviewed-by: egahlin, coleenp
@@ -41,19 +41,21 @@
initialize(table_size, entry_size, 0);
_buckets = NEW_C_HEAP_ARRAY2(HashtableBucket<F>, table_size, F, CURRENT_PC);
for (int index = 0; index < _table_size; index++) {
_buckets[index].clear();
}
+ _stats_rate = TableRateStatistics();
}
template <MEMFLAGS F> inline BasicHashtable<F>::BasicHashtable(int table_size, int entry_size,
HashtableBucket<F>* buckets,
int number_of_entries) {
// Called on startup, no locking needed
initialize(table_size, entry_size, number_of_entries);
_buckets = buckets;
+ _stats_rate = TableRateStatistics();
}
template <MEMFLAGS F> inline void BasicHashtable<F>::initialize(int table_size, int entry_size,
int number_of_entries) {
@@ -95,21 +97,28 @@
}
template <MEMFLAGS F> inline void BasicHashtable<F>::set_entry(int index, BasicHashtableEntry<F>* entry) {
_buckets[index].set_entry(entry);
+ if (entry != NULL) {
+ JFR_ONLY(_stats_rate.add();)
+ } else {
+ JFR_ONLY(_stats_rate.remove();)
+ }
}
template <MEMFLAGS F> inline void BasicHashtable<F>::add_entry(int index, BasicHashtableEntry<F>* entry) {
entry->set_next(bucket(index));
_buckets[index].set_entry(entry);
++_number_of_entries;
+ JFR_ONLY(_stats_rate.add();)
}
template <MEMFLAGS F> inline void BasicHashtable<F>::free_entry(BasicHashtableEntry<F>* entry) {
entry->set_next(_free_list);
_free_list = entry;
--_number_of_entries;
+ JFR_ONLY(_stats_rate.remove();)
}
#endif // SHARE_VM_UTILITIES_HASHTABLE_INLINE_HPP
< prev index next >