< prev index next >

src/hotspot/share/utilities/concurrentHashTable.hpp

Print this page
rev 52316 : 8185525: Add JFR event for DictionarySizes
Summary: Added TableStatistics event
Reviewed-by: egahlin, coleenp

*** 23,32 **** --- 23,34 ---- */ #ifndef SHARE_UTILITIES_CONCURRENT_HASH_TABLE_HPP #define SHARE_UTILITIES_CONCURRENT_HASH_TABLE_HPP + #include "utilities/tableStatistics.hpp" + // A mostly concurrent-hash-table where the read-side is wait-free, inserts are // CAS and deletes mutual exclude each other on per bucket-basis. VALUE is the // type kept inside each Node and CONFIG contains hash and allocation methods. // A CALLBACK_FUNC and LOOKUP_FUNC needs to be provided for get and insert.
*** 371,380 **** --- 373,383 ---- ConcurrentHashTable(size_t log2size = DEFAULT_START_SIZE_LOG2, size_t log2size_limit = DEFAULT_MAX_SIZE_LOG2, size_t grow_hint = DEFAULT_GROW_HINT); ~ConcurrentHashTable(); + TableRateStatistics _stats_rate; size_t get_size_log2(Thread* thread); size_t get_node_size() const { return sizeof(Node); } bool is_max_size_reached() { return _size_limit_reached; }
*** 476,485 **** --- 479,497 ---- // Destroying items matching EVALUATE_FUNC, before destroying items // DELETE_FUNC is called, when the resize lock is successfully obtained. template <typename EVALUATE_FUNC, typename DELETE_FUNC> void bulk_delete(Thread* thread, EVALUATE_FUNC& eval_f, DELETE_FUNC& del_f); + // Calcuate statistics. Item sizes are calculated with VALUE_SIZE_FUNC. + template <typename VALUE_SIZE_FUNC> + TableStatistics statistics_calculate(Thread* thread, VALUE_SIZE_FUNC& vs_f); + + // Gets statistics if available, if not return old one. Item sizes are calculated with + // VALUE_SIZE_FUNC. + template <typename VALUE_SIZE_FUNC> + TableStatistics statistics_get(Thread* thread, VALUE_SIZE_FUNC& vs_f, TableStatistics old); + // Writes statistics to the outputStream. Item sizes are calculated with // VALUE_SIZE_FUNC. template <typename VALUE_SIZE_FUNC> void statistics_to(Thread* thread, VALUE_SIZE_FUNC& vs_f, outputStream* st, const char* table_name);
< prev index next >