summaryrefslogtreecommitdiff
path: root/benchmark/vm1_gc_wb_ary_promoted.yml
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-08 16:28:34 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-07-08 16:28:34 +0000
commit820ad9cb1d72d0897b73dae282df3793814b27e8 (patch)
tree24b454ee3370b772d5bd248398e1a8fa8dd4f328 /benchmark/vm1_gc_wb_ary_promoted.yml
parent9e62c93d0d7433faf7b2976fe89d5c708271823c (diff)
benchmark/vm1_*.yml: abstract away the while loop
benchmark/driver.rb had removed the cost for while loop in benchmark/bm_vm1_*.rb, and benchmark_driver.gem can achieve the same thing with `loop_count`. But unfortunately current benchmark_driver.gem can't solve it only for vm1_yield.yml... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'benchmark/vm1_gc_wb_ary_promoted.yml')
-rw-r--r--benchmark/vm1_gc_wb_ary_promoted.yml28
1 files changed, 13 insertions, 15 deletions
diff --git a/benchmark/vm1_gc_wb_ary_promoted.yml b/benchmark/vm1_gc_wb_ary_promoted.yml
index 5befcc9b5d..cf9b5de005 100644
--- a/benchmark/vm1_gc_wb_ary_promoted.yml
+++ b/benchmark/vm1_gc_wb_ary_promoted.yml
@@ -1,17 +1,15 @@
-benchmark:
- vm1_gc_wb_ary_promoted: |
- long_lived = []
+prelude: |
+ long_lived = []
+
+ if RUBY_VERSION > "2.2.0"
+ 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
+ elsif
+ GC.start
+ end
- if RUBY_VERSION > "2.2.0"
- 3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
- elsif
- GC.start
- end
+ short_lived = ''
- i = 0
- short_lived = ''
- while i<30_000_000 # while loop 1
- long_lived[0] = short_lived # write barrier
- i+=1
- end
-loop_count: 1
+benchmark:
+ vm1_gc_wb_ary_promoted: |
+ long_lived[0] = short_lived # write barrier
+loop_count: 30000000