94 // Do one last trace at disengage time
95 do_trace();
96
97 // Close logfile
98 fprintf(_log_fp, "MemProfiler detached\n");
99 fclose(_log_fp);
100
101 // remove MemProfilerTask
102 assert(_task != NULL, "sanity check");
103 _task->disenroll();
104 delete _task;
105 _task = NULL;
106 }
107
108
109 void MemProfiler::do_trace() {
110 // Calculate thread local sizes
111 size_t handles_memory_usage = VMThread::vm_thread()->handle_area()->size_in_bytes();
112 size_t resource_memory_usage = VMThread::vm_thread()->resource_area()->size_in_bytes();
113 {
114 ThreadsListHandle tlh;
115 JavaThreadIterator jti(tlh.list());
116 for (JavaThread *cur = jti.first(); cur != NULL; cur = jti.next()) {
117 handles_memory_usage += cur->handle_area()->size_in_bytes();
118 resource_memory_usage += cur->resource_area()->size_in_bytes();
119 }
120
121 // Print trace line in log
122 fprintf(_log_fp, "%6.1f,%5d,%5d," UINTX_FORMAT_W(6) "," UINTX_FORMAT_W(6) ",",
123 os::elapsedTime(),
124 tlh.length(),
125 InstanceKlass::number_of_instance_classes(),
126 Universe::heap()->used() / K,
127 Universe::heap()->capacity() / K);
128 }
129
130 fprintf(_log_fp, UINTX_FORMAT_W(6) ",", CodeCache::capacity() / K);
131
132 fprintf(_log_fp, UINTX_FORMAT_W(6) "," UINTX_FORMAT_W(6) ",%6ld\n",
133 handles_memory_usage / K,
134 resource_memory_usage / K,
135 0L);
136 fflush(_log_fp);
137 }
138
139 #endif
|
94 // Do one last trace at disengage time
95 do_trace();
96
97 // Close logfile
98 fprintf(_log_fp, "MemProfiler detached\n");
99 fclose(_log_fp);
100
101 // remove MemProfilerTask
102 assert(_task != NULL, "sanity check");
103 _task->disenroll();
104 delete _task;
105 _task = NULL;
106 }
107
108
109 void MemProfiler::do_trace() {
110 // Calculate thread local sizes
111 size_t handles_memory_usage = VMThread::vm_thread()->handle_area()->size_in_bytes();
112 size_t resource_memory_usage = VMThread::vm_thread()->resource_area()->size_in_bytes();
113 {
114 JavaThreadIteratorWithHandle jtiwh;
115 for (; JavaThread *cur = jtiwh.next(); ) {
116 handles_memory_usage += cur->handle_area()->size_in_bytes();
117 resource_memory_usage += cur->resource_area()->size_in_bytes();
118 }
119
120 // Print trace line in log
121 fprintf(_log_fp, "%6.1f,%5d,%5d," UINTX_FORMAT_W(6) "," UINTX_FORMAT_W(6) ",",
122 os::elapsedTime(),
123 jtiwh.length(),
124 InstanceKlass::number_of_instance_classes(),
125 Universe::heap()->used() / K,
126 Universe::heap()->capacity() / K);
127 }
128
129 fprintf(_log_fp, UINTX_FORMAT_W(6) ",", CodeCache::capacity() / K);
130
131 fprintf(_log_fp, UINTX_FORMAT_W(6) "," UINTX_FORMAT_W(6) ",%6ld\n",
132 handles_memory_usage / K,
133 resource_memory_usage / K,
134 0L);
135 fflush(_log_fp);
136 }
137
138 #endif
|