< prev index next >
src/hotspot/share/runtime/threadHeapSampler.hpp
Print this page
rev 49244 : [mq]: event-only
rev 49247 : [mq]: event5
*** 34,63 ****
// Cheap random number generator
static uint64_t _rnd;
void pick_next_sample(size_t diff = 0);
static int _enabled;
! static int _monitoring_rate;
static void enable() { OrderAccess::release_store(&_enabled, 1); }
static void disable() { OrderAccess::release_store(&_enabled, 0); }
public:
ThreadHeapSampler() : _bytes_until_sample(0), _thread(NULL) {
_rnd = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(this));
if (_rnd == 0) {
_rnd = 1;
}
}
void set_thread(Thread* t) { _thread = t; }
size_t bytes_until_sample() { return _bytes_until_sample; }
void set_bytes_until_sample(size_t bytes) { _bytes_until_sample = bytes; }
void check_for_sampling(HeapWord* obj, size_t size_in_bytes, size_t bytes_allocated_before = 0);
static int enabled() { return OrderAccess::load_acquire(&_enabled); }
! static void set_tlab_heap_sampling(int monitoring_rate);
};
#endif // SHARE_RUNTIME_THREADHEAPSAMPLER_HPP
--- 34,65 ----
// Cheap random number generator
static uint64_t _rnd;
void pick_next_sample(size_t diff = 0);
static int _enabled;
! static int _sampling_rate;
static void enable() { OrderAccess::release_store(&_enabled, 1); }
static void disable() { OrderAccess::release_store(&_enabled, 0); }
+ void init_log_table();
public:
ThreadHeapSampler() : _bytes_until_sample(0), _thread(NULL) {
_rnd = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(this));
if (_rnd == 0) {
_rnd = 1;
}
+ init_log_table();
}
void set_thread(Thread* t) { _thread = t; }
size_t bytes_until_sample() { return _bytes_until_sample; }
void set_bytes_until_sample(size_t bytes) { _bytes_until_sample = bytes; }
void check_for_sampling(HeapWord* obj, size_t size_in_bytes, size_t bytes_allocated_before = 0);
static int enabled() { return OrderAccess::load_acquire(&_enabled); }
! static void set_tlab_heap_sampling(int sampling_rate);
};
#endif // SHARE_RUNTIME_THREADHEAPSAMPLER_HPP
< prev index next >