41 // * An optional reason string which describes the reason for the
42 // action.
43 // * An optional number of name/value pairs which contributed to the
44 // decision to take the action described in the record.
45 //
46 // Each record is associated with a "tag" which is the combination of
47 // the heuristic the record corresponds to, as well as the min level
48 // of verboseness at which the record should be printed. The tag is
49 // checked against the current settings to determine whether the record
50 // should be printed or not.
51
52 // The available verboseness levels.
53 typedef enum {
54 // Determine which part of the tag is occupied by the level.
55 ErgoLevelShift = 8,
56 ErgoLevelMask = ~((1 << ErgoLevelShift) - 1),
57
58 // ErgoLow is 0 so that we don't have to explicitly or a heuristic
59 // id with ErgoLow to keep its use simpler.
60 ErgoLow = 0,
61 ErgoHigh = 1 << ErgoLevelShift,
62 } ErgoLevel;
63
64 // The available heuristics.
65 typedef enum {
66 // Determines which part of the tag is occupied by the heuristic id.
67 ErgoHeuristicMask = ~ErgoLevelMask,
68
69 ErgoHeapSizing = 0,
70 ErgoCSetConstruction,
71 ErgoConcCycles,
72 ErgoPartiallyYoungGCs,
73
74 ErgoHeuristicNum
75 } ErgoHeuristic;
76
77 class G1ErgoVerbose : AllStatic {
78 private:
79 // Determines the minimum verboseness level at which records will be
80 // printed.
81 static ErgoLevel _level;
|
41 // * An optional reason string which describes the reason for the
42 // action.
43 // * An optional number of name/value pairs which contributed to the
44 // decision to take the action described in the record.
45 //
46 // Each record is associated with a "tag" which is the combination of
47 // the heuristic the record corresponds to, as well as the min level
48 // of verboseness at which the record should be printed. The tag is
49 // checked against the current settings to determine whether the record
50 // should be printed or not.
51
52 // The available verboseness levels.
53 typedef enum {
54 // Determine which part of the tag is occupied by the level.
55 ErgoLevelShift = 8,
56 ErgoLevelMask = ~((1 << ErgoLevelShift) - 1),
57
58 // ErgoLow is 0 so that we don't have to explicitly or a heuristic
59 // id with ErgoLow to keep its use simpler.
60 ErgoLow = 0,
61 ErgoHigh = 1 << ErgoLevelShift
62 } ErgoLevel;
63
64 // The available heuristics.
65 typedef enum {
66 // Determines which part of the tag is occupied by the heuristic id.
67 ErgoHeuristicMask = ~ErgoLevelMask,
68
69 ErgoHeapSizing = 0,
70 ErgoCSetConstruction,
71 ErgoConcCycles,
72 ErgoPartiallyYoungGCs,
73
74 ErgoHeuristicNum
75 } ErgoHeuristic;
76
77 class G1ErgoVerbose : AllStatic {
78 private:
79 // Determines the minimum verboseness level at which records will be
80 // printed.
81 static ErgoLevel _level;
|