• duog's avatar
    rts, base: Refactor stats.c to improve --machine-readable report · 2d4bda2e
    duog authored
    There should be no change in the output of the '+RTS -s' (summary)
    report, or the 'RTS -t' (one-line) report.
    
    All data shown in the summary report is now shown in the machine
    readable report.
    
    All data in RTSStats is now shown in the machine readable report.
    
    init times are added to RTSStats and added to GHC.Stats.
    
    Example of the new output:
    ```
     [("bytes allocated", "375016384")
     ,("num_GCs", "113")
     ,("average_bytes_used", "148348")
     ,("max_bytes_used", "206552")
     ,("num_byte_usage_samples", "2")
     ,("peak_megabytes_allocated", "6")
     ,("init_cpu_seconds", "0.001642")
     ,("init_wall_seconds", "0.001027")
     ,("mut_cpu_seconds", "3.020166")
     ,("mut_wall_seconds", "0.757244")
     ,("GC_cpu_seconds", "0.037750")
     ,("GC_wall_seconds", "0.009569")
     ,("exit_cpu_seconds", "0.000890")
     ,("exit_wall_seconds", "0.002551")
     ,("total_cpu_seconds", "3.060452")
     ,("total_wall_seconds", "0.770395")
     ,("major_gcs", "2")
     ,("allocated_bytes", "375016384")
     ,("max_live_bytes", "206552")
     ,("max_large_objects_bytes", "159344")
     ,("max_compact_bytes", "0")
     ,("max_slop_bytes", "59688")
     ,("max_mem_in_use_bytes", "6291456")
     ,("cumulative_live_bytes", "296696")
     ,("copied_bytes", "541024")
     ,("par_copied_bytes", "493976")
     ,("cumulative_par_max_copied_bytes", "104104")
     ,("cumulative_par_balanced_copied_bytes", "274456")
     ,("fragmentation_bytes", "2112")
     ,("alloc_rate", "124170795")
     ,("productivity_cpu_percent", "0.986838")
     ,("productivity_wall_percent", "0.982935")
     ,("bound_task_count", "1")
     ,("sparks_count", "5836258")
     ,("sparks_converted", "237")
     ,("sparks_overflowed", "1990408")
     ,("sparks_dud ", "0")
     ,("sparks_gcd", "3455553")
     ,("sparks_fizzled", "390060")
     ,("work_balance", "0.555606")
     ,("n_capabilities", "4")
     ,("task_count", "10")
     ,("peak_worker_count", "9")
     ,("worker_count", "9")
     ,("gc_alloc_block_sync_spin", "162")
     ,("gc_alloc_block_sync_yield", "0")
     ,("gc_alloc_block_sync_spin", "162")
     ,("gc_spin_spin", "18840855")
     ,("gc_spin_yield", "10355")
     ,("mut_spin_spin", "70331392")
     ,("mut_spin_yield", "61700")
     ,("waitForGcThreads_spin", "241")
     ,("waitForGcThreads_yield", "2797")
     ,("whitehole_gc_spin", "0")
     ,("whitehole_lockClosure_spin", "0")
     ,("whitehole_lockClosure_yield", "0")
     ,("whitehole_executeMessage_spin", "0")
     ,("whitehole_threadPaused_spin", "0")
     ,("any_work", "1667")
     ,("no_work", "1662")
     ,("scav_find_work", "1026")
     ,("gen_0_collections", "111")
     ,("gen_0_par_collections", "111")
     ,("gen_0_cpu_seconds", "0.036126")
     ,("gen_0_wall_seconds", "0.036126")
     ,("gen_0_max_pause_seconds", "0.036126")
     ,("gen_0_avg_pause_seconds", "0.000081")
     ,("gen_0_sync_spin", "21")
     ,("gen_0_sync_yield", "0")
     ,("gen_1_collections", "2")
     ,("gen_1_par_collections", "1")
     ,("gen_1_cpu_seconds", "0.001624")
     ,("gen_1_wall_seconds", "0.001624")
     ,("gen_1_max_pause_seconds", "0.001624")
     ,("gen_1_avg_pause_seconds", "0.000272")
     ,("gen_1_sync_spin", "3")
     ,("gen_1_sync_yield", "0")
     ]
    ```
    
    Test Plan: Ensure that one-line and summary reports are unchanged.
    
    Reviewers: bgamari, erikd, simonmar, hvr
    
    Reviewed By: simonmar
    
    Subscribers: rwbarton, thomie, carter
    
    GHC Trac Issues: #14660
    
    Differential Revision: https://phabricator.haskell.org/D4303
    2d4bda2e
Stats.c 56.1 KB