101 // The array keeps track of all the pauses that fall within a time |
101 // The array keeps track of all the pauses that fall within a time |
102 // slice (the last time slice during which pauses took place). |
102 // slice (the last time slice during which pauses took place). |
103 // The data structure implemented is a circular queue. |
103 // The data structure implemented is a circular queue. |
104 // Head "points" to the most recent addition, tail to the oldest one. |
104 // Head "points" to the most recent addition, tail to the oldest one. |
105 // The array is of fixed size and I don't think we'll need more than |
105 // The array is of fixed size and I don't think we'll need more than |
106 // two or three entries with the current behaviour of G1 pauses. |
106 // two or three entries with the current behavior of G1 pauses. |
107 // If the array is full, an easy fix is to look for the pauses with |
107 // If the array is full, an easy fix is to look for the pauses with |
108 // the shortest gap between them and consolidate them. |
108 // the shortest gap between them and consolidate them. |
109 // For now, we have taken the expedient alternative of forgetting |
109 // For now, we have taken the expedient alternative of forgetting |
110 // the oldest entry in the event that +G1UseFixedWindowMMUTracker, thus |
110 // the oldest entry in the event that +G1UseFixedWindowMMUTracker, thus |
111 // potentially violating MMU specs for some time thereafter. |
111 // potentially violating MMU specs for some time thereafter. |