about summary refs log tree commit homepage
path: root/test/benchmark/big_request.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-03-22 20:58:11 -0700
committerEric Wong <normalperson@yhbt.net>2009-03-22 20:58:11 -0700
commitf4503b0eb9dd73296988021f355f3d28959975e5 (patch)
tree5be11934e0ac81d2331d4d5b60693ae77dc94d91 /test/benchmark/big_request.rb
parent78668173ab0e78c5c94fe23b916a81822c24bf9c (diff)
parent018f827ebdc1668d2262ef1337386f896379e0f6 (diff)
downloadunicorn-f4503b0eb9dd73296988021f355f3d28959975e5.tar.gz
* commit 'origin/benchmark':
  benchmark: header values must be strings
  All new benchmarks, old ones removed
Diffstat (limited to 'test/benchmark/big_request.rb')
-rw-r--r--test/benchmark/big_request.rb35
1 files changed, 35 insertions, 0 deletions
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
+