@@ -1389,21 +1389,19 @@ int jl_gc_classify_pools(size_t sz, int *osize)
1389
1389
// sweep phase
1390
1390
1391
1391
gc_fragmentation_stat_t gc_page_fragmentation_stats [JL_GC_N_POOLS ];
1392
+ JL_DLLEXPORT double jl_gc_page_utilization_stats [JL_GC_N_MAX_POOLS ];
1392
1393
1393
1394
extern gc_fragmentation_stat_t gc_page_fragmentation_stats [JL_GC_N_POOLS ];
1394
1395
1395
1396
STATIC_INLINE void gc_update_page_fragmentation_data (jl_gc_pagemeta_t * pg ) JL_NOTSAFEPOINT
1396
1397
{
1397
- #ifdef GC_MEASURE_PAGE_FRAGMENTATION
1398
1398
gc_fragmentation_stat_t * stats = & gc_page_fragmentation_stats [pg -> pool_n ];
1399
1399
jl_atomic_fetch_add (& stats -> n_freed_objs , pg -> nfree );
1400
1400
jl_atomic_fetch_add (& stats -> n_pages_allocd , 1 );
1401
- #endif
1402
1401
}
1403
1402
1404
1403
STATIC_INLINE void gc_dump_page_utilization_data (void ) JL_NOTSAFEPOINT
1405
1404
{
1406
- #ifdef GC_MEASURE_PAGE_FRAGMENTATION
1407
1405
for (int i = 0 ; i < JL_GC_N_POOLS ; i ++ ) {
1408
1406
gc_fragmentation_stat_t * stats = & gc_page_fragmentation_stats [i ];
1409
1407
double utilization = 1.0 ;
@@ -1412,12 +1410,10 @@ STATIC_INLINE void gc_dump_page_utilization_data(void) JL_NOTSAFEPOINT
1412
1410
if (n_pages_allocd != 0 ) {
1413
1411
utilization -= ((double )n_freed_objs * (double )jl_gc_sizeclasses [i ]) / (double )n_pages_allocd / (double )GC_PAGE_SZ ;
1414
1412
}
1415
- jl_safe_printf ( "Size class %d: %.2f%% utilization\n" , jl_gc_sizeclasses [i ], utilization * 100.0 ) ;
1413
+ jl_gc_page_utilization_stats [i ] = utilization ;
1416
1414
jl_atomic_store_relaxed (& stats -> n_freed_objs , 0 );
1417
1415
jl_atomic_store_relaxed (& stats -> n_pages_allocd , 0 );
1418
1416
}
1419
- jl_safe_printf ("-----------------------------------------\n" );
1420
- #endif
1421
1417
}
1422
1418
1423
1419
int64_t buffered_pages = 0 ;
0 commit comments