< prev index next >
src/share/vm/gc/g1/g1StringDedupStat.hpp
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -28,15 +28,18 @@
#include "memory/allocation.hpp"
#include "runtime/os.hpp"
// Macros for GC log output formating
#define G1_STRDEDUP_OBJECTS_FORMAT UINTX_FORMAT_W(12)
-#define G1_STRDEDUP_TIME_FORMAT "%1.7lf secs"
-#define G1_STRDEDUP_PERCENT_FORMAT "%5.1lf%%"
-#define G1_STRDEDUP_PERCENT_FORMAT_NS "%.1lf%%"
-#define G1_STRDEDUP_BYTES_FORMAT "%8.1lf%s"
-#define G1_STRDEDUP_BYTES_FORMAT_NS "%.1lf%s"
+#define G1_STRDEDUP_TIME_FORMAT "%.3fs"
+#define G1_STRDEDUP_TIME_PARAM(time) (time)
+#define G1_STRDEDUP_TIME_FORMAT_MS "%.3fms"
+#define G1_STRDEDUP_TIME_PARAM_MS(time) ((time) * MILLIUNITS)
+#define G1_STRDEDUP_PERCENT_FORMAT "%5.1f%%"
+#define G1_STRDEDUP_PERCENT_FORMAT_NS "%.1f%%"
+#define G1_STRDEDUP_BYTES_FORMAT "%8.1f%s"
+#define G1_STRDEDUP_BYTES_FORMAT_NS "%.1f%s"
#define G1_STRDEDUP_BYTES_PARAM(bytes) byte_size_in_proper_unit((double)(bytes)), proper_unit_for_byte_size((bytes))
//
// Statistics gathered by the deduplication thread.
//
@@ -58,11 +61,13 @@
uintx _idle;
uintx _exec;
uintx _block;
// Time spent by the deduplication thread in different phases
- double _start;
+ double _start_concurrent;
+ double _end_concurrent;
+ double _start_phase;
double _idle_elapsed;
double _exec_elapsed;
double _block_elapsed;
public:
@@ -102,41 +107,44 @@
_deduped_old++;
_deduped_old_bytes += bytes;
}
void mark_idle() {
- _start = os::elapsedTime();
+ _start_phase = os::elapsedTime();
_idle++;
}
void mark_exec() {
double now = os::elapsedTime();
- _idle_elapsed = now - _start;
- _start = now;
+ _idle_elapsed = now - _start_phase;
+ _start_phase = now;
+ _start_concurrent = now;
_exec++;
}
void mark_block() {
double now = os::elapsedTime();
- _exec_elapsed += now - _start;
- _start = now;
+ _exec_elapsed += now - _start_phase;
+ _start_phase = now;
_block++;
}
void mark_unblock() {
double now = os::elapsedTime();
- _block_elapsed += now - _start;
- _start = now;
+ _block_elapsed += now - _start_phase;
+ _start_phase = now;
}
void mark_done() {
double now = os::elapsedTime();
- _exec_elapsed += now - _start;
+ _exec_elapsed += now - _start_phase;
+ _end_concurrent = now;
}
void add(const G1StringDedupStat& stat);
- static void print_summary(const G1StringDedupStat& last_stat, const G1StringDedupStat& total_stat);
+ static void print_start(const G1StringDedupStat& last_stat);
+ static void print_end(const G1StringDedupStat& last_stat, const G1StringDedupStat& total_stat);
static void print_statistics(const G1StringDedupStat& stat, bool total);
};
#endif // SHARE_VM_GC_G1_G1STRINGDEDUPSTAT_HPP
< prev index next >