summaryrefslogtreecommitdiff
path: root/tool/lrama/lib/lrama/report.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/lrama/lib/lrama/report.rb')
-rw-r--r--tool/lrama/lib/lrama/report.rb49
1 files changed, 2 insertions, 47 deletions
diff --git a/tool/lrama/lib/lrama/report.rb b/tool/lrama/lib/lrama/report.rb
index 7016a45171..650ac09d52 100644
--- a/tool/lrama/lib/lrama/report.rb
+++ b/tool/lrama/lib/lrama/report.rb
@@ -1,47 +1,2 @@
-module Lrama
- class Report
- module Profile
- # 1. Wrap target method with Profile.report_profile like below:
- #
- # Lrama::Report::Profile.report_profile { method }
- #
- # 2. Run lrama command, for example
- #
- # $ ./exe/lrama --trace=time spec/fixtures/integration/ruby_3_2_0/parse.tmp.y
- #
- # 3. Generate html file
- #
- # $ stackprof --d3-flamegraph tmp/stackprof-cpu-myapp.dump > tmp/flamegraph.html
- #
- def self.report_profile
- require "stackprof"
-
- StackProf.run(mode: :cpu, raw: true, out: 'tmp/stackprof-cpu-myapp.dump') do
- yield
- end
- end
- end
-
- module Duration
- def self.enable
- @_report_duration_enabled = true
- end
-
- def self.enabled?
- !!@_report_duration_enabled
- end
-
- def report_duration(method_name)
- time1 = Time.now.to_f
- result = yield
- time2 = Time.now.to_f
-
- if Duration.enabled?
- puts sprintf("%s %10.5f s", method_name, time2 - time1)
- end
-
- return result
- end
- end
- end
-end
+require 'lrama/report/duration'
+require 'lrama/report/profile'