fprofiler.cpp revision 0
0N/A# include "incls/_fprofiler.cpp.incl"
0N/A initialize();
0N/A assert(((r > ThreadProfilerMark::noRegion) && (r < ThreadProfilerMark::maxRegion)), "ThreadProfilerMark::Region out of bounds");
0N/A tty->print_cr("Printing compiled methods with PC buckets having more than %d ticks", ProfilerPCTickThreshold);
0N/A int ticks_in_code;
0N/A int ticks_in_native;
0N/Aclass ProfilerNode {
0N/A ProfilerNode() {
0N/A virtual ~ProfilerNode() {
0N/A virtual bool is_interpreted() const { return false; }
0N/A virtual bool is_compiled() const { return false; }
0N/A virtual bool is_runtime_stub() const{ return false; }
0N/A virtual bool adapter_match() const { return false; }
0N/Avoid ProfilerNode::operator delete(void* p){
0N/A bool is_interpreted() const { return true; }
0N/A bool is_compiled() const { return true; }
0N/A const char* _symbol; // The name of the nearest VM symbol (for +ProfileVM). Points to a unique string
0N/A bool is_compiled() const { return true; }
0N/A bool adapter_match() const { return true; }
0N/A const char* _symbol; // The name of the nearest VM symbol when ProfileVM is on. Points to a unique string.
0N/A runtimeStubNode(const CodeBlob* stub, const char* name, TickPosition where) : ProfilerNode(), _stub(stub), _symbol(name) {
0N/A bool is_runtime_stub() const { return true; }
0N/A bool is_compiled() const { return true; }
0N/A bool is_compiled() const { return true; }
0N/Avoid ThreadProfiler::runtime_stub_update(const CodeBlob* stub, const char* name, TickPosition where) {
0N/A bool interval_expired = false;
0N/A if (ProfileIntervals &&
0N/A interval_expired = true;
0N/A suspendedthreadcount = 0;
0N/A for (int j = 0; j < suspendedthreadcount; j++) {
0N/A for (int i = 0; i < suspendedthreadcount; i++) {
0N/A if (interval_expired) {
0N/A if (interval_expired) {
0N/A // When the class loader starts it marks the ThreadProfiler to tell it it is in the class loader
0N/A case _thread_in_native:
0N/A case _thread_in_native_trans:
0N/A case _thread_in_vm:
0N/A case _thread_in_vm_trans:
0N/A case _thread_in_Java:
0N/A case _thread_in_Java_trans:
0N/A case _thread_blocked:
0N/A case _thread_blocked_trans:
0N/A case _thread_uninitialized:
0N/A case _thread_new:
0N/A case _thread_new_trans:
0N/A thread_ticks = 0;
0N/A blocked_ticks = 0;
0N/A compiler_ticks = 0;
0N/A interpreter_ticks = 0;
0N/A class_loader_ticks = 0;
0N/A extra_ticks = 0;
0N/A initialize();
0N/A class_loader_ticks = 0;
0N/A extra_ticks = 0;
0N/A received_gc_ticks = 0;
0N/A vm_operation_ticks = 0;
0N/A compiler_ticks = 0;
0N/A deopt_ticks = 0;
0N/A interpreter_ticks = 0;
0N/A blocked_ticks = 0;
0N/A unknown_ticks = 0;
0N/A received_ticks = 0;
0N/A delivered_ticks = 0;
0N/A if (thread_ticks <= 0) {
0N/A bool has_interpreted_ticks = false;
0N/A int print_count = 0;
0N/A if (n->is_interpreted()) {
0N/A if (!has_interpreted_ticks) {
0N/A has_interpreted_ticks = true;
0N/A if (has_interpreted_ticks) {
0N/A bool has_compiled_ticks = false;
0N/A print_count = 0;
0N/A if (n->is_compiled()) {
0N/A if (!has_compiled_ticks) {
0N/A has_compiled_ticks = true;
0N/A if (has_compiled_ticks) {
0N/A bool has_stub_ticks = false;
0N/A print_count = 0;
0N/A if (!has_stub_ticks) {
0N/A has_stub_ticks = true;
0N/A if (has_stub_ticks) {
0N/A bool has_runtime_stub_ticks = false;
0N/A print_count = 0;
0N/A if (n->is_runtime_stub()) {
0N/A if (!has_runtime_stub_ticks) {
0N/A has_runtime_stub_ticks = true;
0N/A if (has_runtime_stub_ticks) {
0N/A if (blocked_ticks + class_loader_ticks + interpreter_ticks + compiler_ticks + unknown_ticks() != 0) {
0N/A if (WizardMode) {
0N/A if (non_method_ticks() > 0) {