< prev index next >
src/share/vm/gc/g1/g1HRPrinter.hpp
Print this page
*** 24,33 ****
--- 24,34 ----
#ifndef SHARE_VM_GC_G1_G1HRPRINTER_HPP
#define SHARE_VM_GC_G1_G1HRPRINTER_HPP
#include "gc/g1/heapRegion.hpp"
+ #include "logging/log.hpp"
#include "memory/allocation.hpp"
#define SKIP_RETIRED_FULL_REGIONS 1
class G1HRPrinter VALUE_OBJ_CLASS_SPEC {
*** 54,76 ****
StartsHumongous,
ContinuesHumongous,
Archive
} RegionType;
- typedef enum {
- StartGC,
- EndGC,
- StartFullGC,
- EndFullGC
- } PhaseType;
-
private:
- bool _active;
-
static const char* action_name(ActionType action);
static const char* region_type_name(RegionType type);
- static const char* phase_name(PhaseType phase);
// Print an action event. This version is used in most scenarios and
// only prints the region's bottom. The parameters type and top are
// optional (the "not set" values are Unset and NULL).
static void print(ActionType action, RegionType type,
--- 55,67 ----
*** 78,99 ****
// Print an action event. This version prints both the region's
// bottom and end. Used for Commit / Uncommit events.
static void print(ActionType action, HeapWord* bottom, HeapWord* end);
- // Print a phase event.
- static void print(PhaseType phase, size_t phase_num);
-
public:
// In some places we iterate over a list in order to generate output
// for the list's elements. By exposing this we can avoid this
// iteration if the printer is not active.
! const bool is_active() { return _active; }
!
! // Have to set this explicitly as we have to do this during the
! // heap's initialize() method, not in the constructor.
! void set_active(bool active) { _active = active; }
// The methods below are convenient wrappers for the print() methods.
void alloc(HeapRegion* hr, RegionType type, bool force = false) {
if (is_active()) {
--- 69,83 ----
// Print an action event. This version prints both the region's
// bottom and end. Used for Commit / Uncommit events.
static void print(ActionType action, HeapWord* bottom, HeapWord* end);
public:
// In some places we iterate over a list in order to generate output
// for the list's elements. By exposing this we can avoid this
// iteration if the printer is not active.
! const bool is_active() { return log_is_enabled(Trace, gc, region); }
// The methods below are convenient wrappers for the print() methods.
void alloc(HeapRegion* hr, RegionType type, bool force = false) {
if (is_active()) {
*** 154,183 ****
void uncommit(HeapWord* bottom, HeapWord* end) {
if (is_active()) {
print(Uncommit, bottom, end);
}
}
-
- void start_gc(bool full, size_t gc_num) {
- if (is_active()) {
- if (!full) {
- print(StartGC, gc_num);
- } else {
- print(StartFullGC, gc_num);
- }
- }
- }
-
- void end_gc(bool full, size_t gc_num) {
- if (is_active()) {
- if (!full) {
- print(EndGC, gc_num);
- } else {
- print(EndFullGC, gc_num);
- }
- }
- }
-
- G1HRPrinter() : _active(false) { }
};
#endif // SHARE_VM_GC_G1_G1HRPRINTER_HPP
--- 138,145 ----
< prev index next >