< prev index next >
src/share/vm/runtime/sweeper.cpp
Print this page
*** 26,48 ****
#include "code/codeCache.hpp"
#include "code/compiledIC.hpp"
#include "code/icBuffer.hpp"
#include "code/nmethod.hpp"
#include "compiler/compileBroker.hpp"
#include "memory/resourceArea.hpp"
#include "oops/method.hpp"
#include "runtime/atomic.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/os.hpp"
#include "runtime/sweeper.hpp"
#include "runtime/thread.inline.hpp"
#include "runtime/vm_operations.hpp"
- #include "trace/tracing.hpp"
#include "utilities/events.hpp"
! #include "utilities/ticks.inline.hpp"
#include "utilities/xmlstream.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
#ifdef ASSERT
--- 26,48 ----
#include "code/codeCache.hpp"
#include "code/compiledIC.hpp"
#include "code/icBuffer.hpp"
#include "code/nmethod.hpp"
#include "compiler/compileBroker.hpp"
+ #include "jfr/jfrEvents.hpp"
#include "memory/resourceArea.hpp"
#include "oops/method.hpp"
#include "runtime/atomic.hpp"
#include "runtime/compilationPolicy.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.inline.hpp"
#include "runtime/os.hpp"
#include "runtime/sweeper.hpp"
#include "runtime/thread.inline.hpp"
#include "runtime/vm_operations.hpp"
#include "utilities/events.hpp"
! #include "utilities/ticks.hpp"
#include "utilities/xmlstream.hpp"
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
#ifdef ASSERT
*** 316,325 ****
--- 316,343 ----
// Release work, because another compiler thread could continue.
OrderAccess::release_store((int*)&_sweep_started, 0);
}
}
+ static void post_sweep_event(EventSweepCodeCache* event,
+ const Ticks& start,
+ const Ticks& end,
+ s4 traversals,
+ int swept,
+ int flushed,
+ int zombified) {
+ assert(event != NULL, "invariant");
+ assert(event->should_commit(), "invariant");
+ event->set_starttime(start);
+ event->set_endtime(end);
+ event->set_sweepId(traversals);
+ event->set_sweptCount(swept);
+ event->set_flushedCount(flushed);
+ event->set_zombifiedCount(zombified);
+ event->commit();
+ }
+
void NMethodSweeper::sweep_code_cache() {
ResourceMark rm;
Ticks sweep_start_counter = Ticks::now();
_flushed_count = 0;
*** 392,410 ****
_total_flushed_size += freed_memory;
_total_nof_methods_reclaimed += _flushed_count;
EventSweepCodeCache event(UNTIMED);
if (event.should_commit()) {
! event.set_starttime(sweep_start_counter);
! event.set_endtime(sweep_end_counter);
! event.set_sweepIndex(_traversals);
! event.set_sweepFractionIndex(NmethodSweepFraction - _sweep_fractions_left + 1);
! event.set_sweptCount(swept_count);
! event.set_flushedCount(_flushed_count);
! event.set_markedCount(_marked_for_reclamation_count);
! event.set_zombifiedCount(_zombified_count);
! event.commit();
}
#ifdef ASSERT
if(PrintMethodFlushing) {
tty->print_cr("### sweeper: sweep time(%d): "
--- 410,420 ----
_total_flushed_size += freed_memory;
_total_nof_methods_reclaimed += _flushed_count;
EventSweepCodeCache event(UNTIMED);
if (event.should_commit()) {
! post_sweep_event(&event, sweep_start_counter, sweep_end_counter, (s4)_traversals, swept_count, _flushed_count, _zombified_count);
}
#ifdef ASSERT
if(PrintMethodFlushing) {
tty->print_cr("### sweeper: sweep time(%d): "
< prev index next >