summaryrefslogtreecommitdiff
path: root/benchmark/lib/benchmark_driver
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2021-02-11 00:25:45 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2021-02-11 00:25:46 -0800
commita0216b1acf375e8b3fb7dbb31bd5711acc76d05e (patch)
treebfd1892f6a886b1773bc734ecc8f542204ebd770 /benchmark/lib/benchmark_driver
parent27382eb9fc3f8de4884a5b14903fecb64ba76011 (diff)
Do not run File.write while Ractors are running
also make sure all local variables have the __bmdv_ prefix.
Diffstat (limited to 'benchmark/lib/benchmark_driver')
-rw-r--r--benchmark/lib/benchmark_driver/runner/ractor.rb27
1 files changed, 15 insertions, 12 deletions
diff --git a/benchmark/lib/benchmark_driver/runner/ractor.rb b/benchmark/lib/benchmark_driver/runner/ractor.rb
index 15893b45cf..c730b8e4a5 100644
--- a/benchmark/lib/benchmark_driver/runner/ractor.rb
+++ b/benchmark/lib/benchmark_driver/runner/ractor.rb
@@ -66,29 +66,32 @@ Warning[:experimental] = false
#{prelude}
if #{loop_count} == 1
- __bmdv_empty_before = 0
- __bmdv_empty_after = 0
+ __bmdv_loop_before = 0
+ __bmdv_loop_after = 0
else
- __bmdv_empty_before = Time.new
+ __bmdv_loop_before = Time.new
#{while_loop('', loop_count, id: 0)}
- __bmdv_empty_after = Time.new
+ __bmdv_loop_after = Time.new
end
-ractors = []
-<% results.each do |result| %>
-ractors << Ractor.new(__bmdv_empty_after - __bmdv_empty_before) { |loop_time|
+__bmdv_ractors = []
+<% results.size.times do %>
+__bmdv_ractors << Ractor.new(__bmdv_loop_after - __bmdv_loop_before) { |__bmdv_loop_time|
__bmdv_time = Time
__bmdv_script_before = __bmdv_time.new
#{while_loop(script, loop_count, id: 1)}
__bmdv_script_after = __bmdv_time.new
- File.write(
- <%= result.dump %>,
- ((__bmdv_script_after - __bmdv_script_before) - loop_time).inspect,
- )
+ (__bmdv_script_after - __bmdv_script_before) - __bmdv_loop_time
}
<% end %>
-ractors.each(&:take)
+
+# Wait for all Ractors before executing code to write results
+__bmdv_ractors.map!(&:take)
+
+<% results.each do |result| %>
+File.write(<%= result.dump %>, __bmdv_ractors.shift)
+<% end %>
#{teardown}
RUBY