22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "memory/allocation.hpp"
27 #include "runtime/init.hpp"
28 #include "runtime/task.hpp"
29 #include "runtime/timer.hpp"
30 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 # include "thread_linux.inline.hpp"
33 #endif
34 #ifdef TARGET_OS_FAMILY_solaris
35 # include "os_solaris.inline.hpp"
36 # include "thread_solaris.inline.hpp"
37 #endif
38 #ifdef TARGET_OS_FAMILY_windows
39 # include "os_windows.inline.hpp"
40 # include "thread_windows.inline.hpp"
41 #endif
42
43 int PeriodicTask::_num_tasks = 0;
44 PeriodicTask* PeriodicTask::_tasks[PeriodicTask::max_tasks];
45 #ifndef PRODUCT
46 elapsedTimer PeriodicTask::_timer;
47 int PeriodicTask::_intervalHistogram[PeriodicTask::max_interval];
48 int PeriodicTask::_ticks;
49
50 void PeriodicTask::print_intervals() {
51 if (ProfilerCheckIntervals) {
52 for (int i = 0; i < PeriodicTask::max_interval; i++) {
53 int n = _intervalHistogram[i];
54 if (n > 0) tty->print_cr("%3d: %5d (%4.1f%%)", i, n, 100.0 * n / _ticks);
55 }
56 }
57 }
58 #endif
59
60 void PeriodicTask::real_time_tick(size_t delay_time) {
61 #ifndef PRODUCT
|
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "memory/allocation.hpp"
27 #include "runtime/init.hpp"
28 #include "runtime/task.hpp"
29 #include "runtime/timer.hpp"
30 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 # include "thread_linux.inline.hpp"
33 #endif
34 #ifdef TARGET_OS_FAMILY_solaris
35 # include "os_solaris.inline.hpp"
36 # include "thread_solaris.inline.hpp"
37 #endif
38 #ifdef TARGET_OS_FAMILY_windows
39 # include "os_windows.inline.hpp"
40 # include "thread_windows.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_bsd
43 # include "os_bsd.inline.hpp"
44 # include "thread_bsd.inline.hpp"
45 #endif
46
47 int PeriodicTask::_num_tasks = 0;
48 PeriodicTask* PeriodicTask::_tasks[PeriodicTask::max_tasks];
49 #ifndef PRODUCT
50 elapsedTimer PeriodicTask::_timer;
51 int PeriodicTask::_intervalHistogram[PeriodicTask::max_interval];
52 int PeriodicTask::_ticks;
53
54 void PeriodicTask::print_intervals() {
55 if (ProfilerCheckIntervals) {
56 for (int i = 0; i < PeriodicTask::max_interval; i++) {
57 int n = _intervalHistogram[i];
58 if (n > 0) tty->print_cr("%3d: %5d (%4.1f%%)", i, n, 100.0 * n / _ticks);
59 }
60 }
61 }
62 #endif
63
64 void PeriodicTask::real_time_tick(size_t delay_time) {
65 #ifndef PRODUCT
|