< prev index next > src/hotspot/share/prims/resolvedMethodTable.cpp
Print this page
Atomic::dec(&_items_count);
log_trace(membername, table) ("ResolvedMethod entry removed");
}
double ResolvedMethodTable::get_load_factor() {
! return (double)_items_count/_current_size;
}
double ResolvedMethodTable::get_dead_factor() {
! return (double)_uncleaned_items_count/_current_size;
}
static const double PREF_AVG_LIST_LEN = 2.0;
// If we have as many dead items as 50% of the number of bucket
static const double CLEAN_DEAD_HIGH_WATER_MARK = 0.5;
Atomic::dec(&_items_count);
log_trace(membername, table) ("ResolvedMethod entry removed");
}
double ResolvedMethodTable::get_load_factor() {
! return double(_items_count)/double(_current_size);
}
double ResolvedMethodTable::get_dead_factor() {
! return double(_uncleaned_items_count)/double(_current_size);
}
static const double PREF_AVG_LIST_LEN = 2.0;
// If we have as many dead items as 50% of the number of bucket
static const double CLEAN_DEAD_HIGH_WATER_MARK = 0.5;
if ((dead_factor > load_factor) ||
(load_factor > PREF_AVG_LIST_LEN) ||
(dead_factor > CLEAN_DEAD_HIGH_WATER_MARK)) {
log_debug(membername, table)("Concurrent work triggered, live factor: %g dead factor: %g",
load_factor, dead_factor);
+ _uncleaned_items_count = 0;
trigger_concurrent_work();
}
}
void ResolvedMethodTable::trigger_concurrent_work() {
}
bdt.done(jt);
}
log_info(membername, table)("Cleaned %ld of %ld", stdc._count, stdc._item);
}
- void ResolvedMethodTable::reset_dead_counter() {
- _uncleaned_items_count = 0;
- }
! void ResolvedMethodTable::inc_dead_counter(size_t ndead) {
! size_t total = Atomic::add(&_uncleaned_items_count, ndead);
log_trace(membername, table)(
! "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT,
! _uncleaned_items_count, ndead, total);
- }
-
- // After the parallel walk this method must be called to trigger
- // cleaning. Note it might trigger a resize instead.
- void ResolvedMethodTable::finish_dead_counter() {
check_concurrent_work();
}
#if INCLUDE_JVMTI
class AdjustMethodEntries : public StackObj {
}
bdt.done(jt);
}
log_info(membername, table)("Cleaned %ld of %ld", stdc._count, stdc._item);
}
! void ResolvedMethodTable::gc_notification(size_t num_dead) {
! size_t total = Atomic::add(&_uncleaned_items_count, num_dead);
log_trace(membername, table)(
! "Uncleaned items:" SIZE_FORMAT " added: " SIZE_FORMAT " total:" SIZE_FORMAT,
! _uncleaned_items_count, num_dead, total);
check_concurrent_work();
}
#if INCLUDE_JVMTI
class AdjustMethodEntries : public StackObj {
< prev index next >