diff options
author | murphy <murphy@rubychan.de> | 2011-05-21 04:50:53 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2011-05-21 04:50:53 +0000 |
commit | b2bb9edd2ab749a99234d75984004471780f8f27 (patch) | |
tree | d774f6add97aaa32f5be4d285d1ce94aa439a4e7 /etc/speedup2 | |
parent | b1222196c6416a625caf3d15f13bf9415a1765ca (diff) | |
download | coderay-b2bb9edd2ab749a99234d75984004471780f8f27.tar.gz |
etc updates
Diffstat (limited to 'etc/speedup2')
-rw-r--r-- | etc/speedup2/multi.rb | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/etc/speedup2/multi.rb b/etc/speedup2/multi.rb index c32c140..bd9551c 100644 --- a/etc/speedup2/multi.rb +++ b/etc/speedup2/multi.rb @@ -119,20 +119,24 @@ end N = (5 ** (ARGV.first || 8).to_i) code = (1..N).map { |n| "#{n} alpha, beta, (gamma).\n" }.join -time = Benchmark.realtime do - out = Encoder.new.encode(Scanner.new(code)) -end -puts 'Current: %0.2fs -- %0.0f kTok/s' % [time, (N * 11 + 1) / time / 1000] - slice_size = (ARGV[1] || 100).to_i -time = Benchmark.realtime do - threads = [] - code.lines.each_slice slice_size do |lines| - threads << Thread.new do - Thread.current[:out] = Encoder.new.encode(Scanner.new(lines.inject(&:+))) +3.times do + time = Benchmark.realtime do + threads = [] + code.lines.each_slice slice_size do |lines| + threads << Thread.new do + Thread.current[:out] = Encoder.new.encode(Scanner.new(lines.inject(&:+))) + end end + threads.each(&:join) + out = threads.map { |t| t[:out] }.join + end + puts 'Multi-Threaded: %0.2fs -- %0.0f kTok/s' % [time, (N * 11 + 1) / time / 1000] +end + +3.times do + time = Benchmark.realtime do + out = Encoder.new.encode(Scanner.new(code)) end - threads.each(&:join) - out = threads.map { |t| t[:out] }.join + puts 'Current: %0.2fs -- %0.0f kTok/s' % [time, (N * 11 + 1) / time / 1000] end -puts 'Multi-Threaded: %0.2fs -- %0.0f kTok/s' % [time, (N * 11 + 1) / time / 1000] |