From 98ea5cca50b907e20d6357f425d7789bac1d1a47 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 10 Mar 2009 18:44:34 -0700 Subject: All new benchmarks, old ones removed dd.ru is a rackup file is intended as a dd(1)-like test for I/O performance. There are also individual request, response, and big_request benchmarks for micro benchmarking some parts of Unicorn. The rest of the benchmarks are gone: I am not interested in performance comparisons (and pissing matches) with other web servers (or their fanboys/girls). I will _NEVER_ publically publish benchmarks comparing Unicorn against other web servers. I will only compare Unicorn against other versions of Unicorn, possibly on different platforms. Neutral third-parties are invited to publish their own benchmarks (along with detailed procedures, version numbers and other details) comparing Unicorn to other servers. Signed-off-by: Eric Wong --- test/benchmark/big_request.rb | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/benchmark/big_request.rb (limited to 'test/benchmark/big_request.rb') diff --git a/test/benchmark/big_request.rb b/test/benchmark/big_request.rb new file mode 100644 index 0000000..5f2111b --- /dev/null +++ b/test/benchmark/big_request.rb @@ -0,0 +1,35 @@ +require 'benchmark' +require 'tempfile' +require 'unicorn' +nr = ENV['nr'] ? ENV['nr'].to_i : 100 +bs = ENV['bs'] ? ENV['bs'].to_i : (1024 * 1024) +count = ENV['count'] ? ENV['count'].to_i : 4 +length = bs * count +slice = (' ' * bs).freeze + +big = Tempfile.new('') +def big.unicorn_peeraddr; '127.0.0.1'; end +big.syswrite( +"PUT /hello/world/puturl?abcd=efg&hi#anchor HTTP/1.0\r\n" \ +"Host: localhost\r\n" \ +"Accept: */*\r\n" \ +"Content-Length: #{length}\r\n" \ +"User-Agent: test-user-agent 0.1.0 (Mozilla compatible) 5.0 asdfadfasda\r\n" \ +"\r\n") +count.times { big.syswrite(slice) } +big.sysseek(0) +big.fsync + +include Unicorn +request = HttpRequest.new(Logger.new($stderr)) + +Benchmark.bmbm do |x| + x.report("big") do + for i in 1..nr + request.read(big) + request.reset + big.sysseek(0) + end + end +end + -- cgit v1.2.3-24-ge0c7