[reporting][perf] report InferPrint time taken

Summary:
- InferPrint reports time stats only, logged in `reporting_stats/` as well as a `PerformanceStats` event with `stats_type: reporting`
- Perf reporting can now be registered at one point (with desired start real and cpu times) and triggered later

Reviewed By: dulmarod

Differential Revision: D7332435

fbshipit-source-id: 2e17c7f
master
Varun Arora 7 years ago committed by Facebook Github Bot
parent 68ab61976a
commit c3184acd2e

@ -866,11 +866,6 @@ let get_summary_iterator () =
iterate
let register_perf_stats_report () =
let filename = F.sprintf "%s.json" Config.perf_stats_prefix in
PerfStats.register_report_at_exit filename PerfStats.Reporting
(** Although the out_file is an Option type, the None option is strictly meant for the
logs format_kind, and all other formats should contain an outfile value. *)
let mk_format format_kind fname =
@ -969,6 +964,17 @@ let pp_summary_and_issues formats_by_report_kind issue_formats =
finalize_and_close_files formats_by_report_kind stats
let register_perf_stats_report () =
let fname = F.sprintf "%s.json" Config.perf_stats_prefix in
let rtime_span, initial_times = (Mtime_clock.counter (), Unix.times ()) in
PerfStats.register_report (PerfStats.Time (rtime_span, initial_times)) fname PerfStats.Reporting
let report_perf_stats () =
let fname = F.sprintf "%s.json" Config.perf_stats_prefix in
PerfStats.get_reporter fname PerfStats.Reporting ()
let main ~report_json =
let issue_formats = init_issues_format_list report_json in
let formats_by_report_kind =
@ -979,8 +985,9 @@ let main ~report_json =
in
register_perf_stats_report () ;
init_files formats_by_report_kind ;
match Config.from_json_report with
( match Config.from_json_report with
| Some fname ->
pp_json_report_by_report_kind formats_by_report_kind fname
| None ->
pp_summary_and_issues formats_by_report_kind issue_formats
pp_summary_and_issues formats_by_report_kind issue_formats ) ;
report_perf_stats ()

Loading…
Cancel
Save