69
69
#include " runtime/prefetch.inline.hpp"
70
70
#include " services/memTracker.hpp"
71
71
#include " utilities/align.hpp"
72
+ #include " utilities/formatBuffer.hpp"
72
73
#include " utilities/growableArray.hpp"
73
74
74
75
bool G1CMBitMapClosure::do_addr (HeapWord* const addr) {
@@ -2890,8 +2891,9 @@ G1CMTask::G1CMTask(uint worker_id,
2890
2891
#define G1PPRL_STATE_H_FORMAT " %5s"
2891
2892
#define G1PPRL_BYTE_FORMAT " " SIZE_FORMAT_W(9 )
2892
2893
#define G1PPRL_BYTE_H_FORMAT " %9s"
2893
- #define G1PPRL_DOUBLE_FORMAT " %14.1f"
2894
- #define G1PPRL_DOUBLE_H_FORMAT " %14s"
2894
+ #define G1PPRL_DOUBLE_FORMAT " %14.1f"
2895
+ #define G1PPRL_GCEFF_FORMAT " %14s"
2896
+ #define G1PPRL_GCEFF_H_FORMAT " %14s"
2895
2897
2896
2898
// For summary info
2897
2899
#define G1PPRL_SUM_ADDR_FORMAT (tag ) " " tag " :" G1PPRL_ADDR_BASE_FORMAT
@@ -2926,7 +2928,7 @@ G1PrintRegionLivenessInfoClosure::G1PrintRegionLivenessInfoClosure(const char* p
2926
2928
G1PPRL_BYTE_H_FORMAT
2927
2929
G1PPRL_BYTE_H_FORMAT
2928
2930
G1PPRL_BYTE_H_FORMAT
2929
- G1PPRL_DOUBLE_H_FORMAT
2931
+ G1PPRL_GCEFF_H_FORMAT
2930
2932
G1PPRL_BYTE_H_FORMAT
2931
2933
G1PPRL_STATE_H_FORMAT
2932
2934
G1PPRL_BYTE_H_FORMAT,
@@ -2939,7 +2941,7 @@ G1PrintRegionLivenessInfoClosure::G1PrintRegionLivenessInfoClosure(const char* p
2939
2941
G1PPRL_BYTE_H_FORMAT
2940
2942
G1PPRL_BYTE_H_FORMAT
2941
2943
G1PPRL_BYTE_H_FORMAT
2942
- G1PPRL_DOUBLE_H_FORMAT
2944
+ G1PPRL_GCEFF_H_FORMAT
2943
2945
G1PPRL_BYTE_H_FORMAT
2944
2946
G1PPRL_STATE_H_FORMAT
2945
2947
G1PPRL_BYTE_H_FORMAT,
@@ -2964,6 +2966,7 @@ bool G1PrintRegionLivenessInfoClosure::do_heap_region(HeapRegion* r) {
2964
2966
size_t remset_bytes = r->rem_set ()->mem_size ();
2965
2967
size_t strong_code_roots_bytes = r->rem_set ()->strong_code_roots_mem_size ();
2966
2968
const char * remset_type = r->rem_set ()->get_short_state_str ();
2969
+ FormatBuffer<16 > gc_efficiency (" " );
2967
2970
2968
2971
_total_used_bytes += used_bytes;
2969
2972
_total_capacity_bytes += capacity_bytes;
@@ -2972,20 +2975,26 @@ bool G1PrintRegionLivenessInfoClosure::do_heap_region(HeapRegion* r) {
2972
2975
_total_remset_bytes += remset_bytes;
2973
2976
_total_strong_code_roots_bytes += strong_code_roots_bytes;
2974
2977
2978
+ if (gc_eff < 0 ) {
2979
+ gc_efficiency.append (" -" );
2980
+ } else {
2981
+ gc_efficiency.append (G1PPRL_DOUBLE_FORMAT, gc_eff);
2982
+ }
2983
+
2975
2984
// Print a line for this particular region.
2976
2985
log_trace (gc, liveness)(G1PPRL_LINE_PREFIX
2977
- G1PPRL_TYPE_FORMAT
2978
- G1PPRL_ADDR_BASE_FORMAT
2979
- G1PPRL_BYTE_FORMAT
2980
- G1PPRL_BYTE_FORMAT
2981
- G1PPRL_BYTE_FORMAT
2982
- G1PPRL_DOUBLE_FORMAT
2983
- G1PPRL_BYTE_FORMAT
2984
- G1PPRL_STATE_FORMAT
2985
- G1PPRL_BYTE_FORMAT,
2986
- type, p2i (bottom), p2i (end),
2987
- used_bytes, prev_live_bytes, next_live_bytes, gc_eff ,
2988
- remset_bytes, remset_type, strong_code_roots_bytes);
2986
+ G1PPRL_TYPE_FORMAT
2987
+ G1PPRL_ADDR_BASE_FORMAT
2988
+ G1PPRL_BYTE_FORMAT
2989
+ G1PPRL_BYTE_FORMAT
2990
+ G1PPRL_BYTE_FORMAT
2991
+ G1PPRL_GCEFF_FORMAT
2992
+ G1PPRL_BYTE_FORMAT
2993
+ G1PPRL_STATE_FORMAT
2994
+ G1PPRL_BYTE_FORMAT,
2995
+ type, p2i (bottom), p2i (end),
2996
+ used_bytes, prev_live_bytes, next_live_bytes, gc_efficiency. buffer () ,
2997
+ remset_bytes, remset_type, strong_code_roots_bytes);
2989
2998
2990
2999
return false ;
2991
3000
}
0 commit comments