261
262 void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
263 EventGCG1EvacuationOldStatistics old_evt;
264 if (old_evt.should_commit()) {
265 old_evt.set_stats(create_g1_evacstats(GCId::current(), summary));
266 old_evt.commit();
267 }
268 }
269
270 void G1NewTracer::send_basic_ihop_statistics(size_t threshold,
271 size_t target_occupancy,
272 size_t current_occupancy,
273 size_t last_allocation_size,
274 double last_allocation_duration,
275 double last_marking_length) {
276 EventGCG1BasicIHOP evt;
277 if (evt.should_commit()) {
278 evt.set_gcId(GCId::current());
279 evt.set_threshold(threshold);
280 evt.set_targetOccupancy(target_occupancy);
281 evt.set_thresholdPercentage(target_occupancy > 0 ? threshold * 100.0 / target_occupancy : 0.0);
282 evt.set_currentOccupancy(current_occupancy);
283 evt.set_lastAllocationSize(last_allocation_size);
284 evt.set_lastAllocationDuration(last_allocation_duration);
285 evt.set_lastAllocationRate(last_allocation_duration != 0.0 ? last_allocation_size / last_allocation_duration : 0.0);
286 evt.set_lastMarkingLength(last_marking_length);
287 evt.commit();
288 }
289 }
290
291 void G1NewTracer::send_adaptive_ihop_statistics(size_t threshold,
292 size_t internal_target_occupancy,
293 size_t current_occupancy,
294 size_t additional_buffer_size,
295 double predicted_allocation_rate,
296 double predicted_marking_length,
297 bool prediction_active) {
298 EventGCG1AdaptiveIHOP evt;
299 if (evt.should_commit()) {
300 evt.set_gcId(GCId::current());
301 evt.set_threshold(threshold);
302 evt.set_thresholdPercentage(internal_target_occupancy > 0 ? threshold * 100.0 / internal_target_occupancy : 0.0);
303 evt.set_internalTargetOccupancy(internal_target_occupancy);
304 evt.set_currentOccupancy(current_occupancy);
305 evt.set_additionalBufferSize(additional_buffer_size);
306 evt.set_predictedAllocationRate(predicted_allocation_rate);
307 evt.set_predictedMarkingLength(predicted_marking_length);
308 evt.set_predictionActive(prediction_active);
309 evt.commit();
310 }
311 }
312
313 #endif
314
315 static TraceStructVirtualSpace to_trace_struct(const VirtualSpaceSummary& summary) {
316 TraceStructVirtualSpace space;
317 space.set_start((TraceAddress)summary.start());
318 space.set_committedEnd((TraceAddress)summary.committed_end());
319 space.set_committedSize(summary.committed_size());
320 space.set_reservedEnd((TraceAddress)summary.reserved_end());
321 space.set_reservedSize(summary.reserved_size());
322 return space;
|
261
262 void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
263 EventGCG1EvacuationOldStatistics old_evt;
264 if (old_evt.should_commit()) {
265 old_evt.set_stats(create_g1_evacstats(GCId::current(), summary));
266 old_evt.commit();
267 }
268 }
269
270 void G1NewTracer::send_basic_ihop_statistics(size_t threshold,
271 size_t target_occupancy,
272 size_t current_occupancy,
273 size_t last_allocation_size,
274 double last_allocation_duration,
275 double last_marking_length) {
276 EventGCG1BasicIHOP evt;
277 if (evt.should_commit()) {
278 evt.set_gcId(GCId::current());
279 evt.set_threshold(threshold);
280 evt.set_targetOccupancy(target_occupancy);
281 evt.set_thresholdPercentage(target_occupancy > 0 ? (threshold * 100 / target_occupancy) : 0);
282 evt.set_currentOccupancy(current_occupancy);
283 evt.set_lastAllocationSize(last_allocation_size);
284 evt.set_lastAllocationDuration(last_allocation_duration);
285 evt.set_lastAllocationRate(last_allocation_duration != 0.0 ? last_allocation_size / last_allocation_duration : 0.0);
286 evt.set_lastMarkingLength(last_marking_length);
287 evt.commit();
288 }
289 }
290
291 void G1NewTracer::send_adaptive_ihop_statistics(size_t threshold,
292 size_t internal_target_occupancy,
293 size_t current_occupancy,
294 size_t additional_buffer_size,
295 double predicted_allocation_rate,
296 double predicted_marking_length,
297 bool prediction_active) {
298 EventGCG1AdaptiveIHOP evt;
299 if (evt.should_commit()) {
300 evt.set_gcId(GCId::current());
301 evt.set_threshold(threshold);
302 evt.set_thresholdPercentage(internal_target_occupancy > 0 ? (threshold * 100 / internal_target_occupancy) : 0);
303 evt.set_internalTargetOccupancy(internal_target_occupancy);
304 evt.set_currentOccupancy(current_occupancy);
305 evt.set_additionalBufferSize(additional_buffer_size);
306 evt.set_predictedAllocationRate(predicted_allocation_rate);
307 evt.set_predictedMarkingLength(predicted_marking_length);
308 evt.set_predictionActive(prediction_active);
309 evt.commit();
310 }
311 }
312
313 #endif
314
315 static TraceStructVirtualSpace to_trace_struct(const VirtualSpaceSummary& summary) {
316 TraceStructVirtualSpace space;
317 space.set_start((TraceAddress)summary.start());
318 space.set_committedEnd((TraceAddress)summary.committed_end());
319 space.set_committedSize(summary.committed_size());
320 space.set_reservedEnd((TraceAddress)summary.reserved_end());
321 space.set_reservedSize(summary.reserved_size());
322 return space;
|