summaryrefslogtreecommitdiff
path: root/etc/speedup2
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2011-05-21 04:50:53 +0000
committermurphy <murphy@rubychan.de>2011-05-21 04:50:53 +0000
commitb2bb9edd2ab749a99234d75984004471780f8f27 (patch)
treed774f6add97aaa32f5be4d285d1ce94aa439a4e7 /etc/speedup2
parentb1222196c6416a625caf3d15f13bf9415a1765ca (diff)
downloadcoderay-b2bb9edd2ab749a99234d75984004471780f8f27.tar.gz
etc updates
Diffstat (limited to 'etc/speedup2')
-rw-r--r--etc/speedup2/multi.rb30
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]