about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
authorevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-22 06:09:56 +0000
committerevanweaver <evanweaver@19e92222-5c0b-0410-8929-a290d50e31e9>2007-10-22 06:09:56 +0000
commit7b64d3ef3496d14bc8040d00e63cf2bef6133ecd (patch)
tree219bd1397b30121ceaac13795bd3d0103ddfbe23 /test
parentf33e60a3ae80aeced81c692f7934eea8454d75e9 (diff)
downloadunicorn-7b64d3ef3496d14bc8040d00e63cf2bef6133ecd.tar.gz
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@726 19e92222-5c0b-0410-8929-a290d50e31e9
Diffstat (limited to 'test')
-rw-r--r--test/test_uriclassifier.rb67
1 files changed, 42 insertions, 25 deletions
diff --git a/test/test_uriclassifier.rb b/test/test_uriclassifier.rb
index 973309a..d2099f8 100644
--- a/test/test_uriclassifier.rb
+++ b/test/test_uriclassifier.rb
@@ -185,37 +185,54 @@ class URIClassifierTest < Test::Unit::TestCase
     end
   end
   
-  def test_benchmark  
-    @fragments = %w(the benchmark module provides methods to measure and report the time used to execute ruby code)
-
-    @classifier = URIClassifier.new
-    @classifier.register("/", 1)
-
-    @requests = []
+  def xtest_benchmark    
+    # This benchmark should favor a TST, but it seems to be mostly irrelevant
+  
+    @uris = %w(
+      /
+      /dag /dig /digbark /dog /dogbark /dog/bark /dug /dugbarking /puppy
+      /c /cat /cat/tree /cat/tree/mulberry /cats /cot /cot/tree/mulberry /kitty /kittycat
+    )
     
-    @fragments.size.times do |n|
-      this_uri = "/" + @fragments[0..n].join("/")
-      @classifier.register(this_uri, 1)
-      @requests << this_uri
+    @requests = %w(
+      /
+      /dig
+      /digging
+      /dogging
+      /dogbarking/
+      /puppy/barking
+      /c
+      /cat
+      /cat/shrub
+      /cat/tree
+      /cat/tree/maple
+      /cat/tree/mulberry/tree
+      /cat/tree/oak
+      /cats/
+      /cats/tree
+      /cod
+      /zebra
+    )
+  
+    @classifier = URIClassifier.new
+    @uris.each do |uri|
+      @classifier.register(uri, 1)
     end
-    
-    @requests = @requests.map do |path|
-      (0..100).map do |n|      
-        path.size > n ? path[0..-n] : path
-      end
-    end.flatten * 10
-    
-    puts "#{@fragments.size} paths registered"
-    puts "#{@requests.size} requests queued"
-    
+
     Benchmark.bm do |x|
       x.report do
-        @requests.each do |request|
-          @classifier.resolve(request)
-        end
+#        require 'ruby-prof'
+#        profile = RubyProf.profile do
+          10000.times do
+            @requests.each do |request|
+              @classifier.resolve(request)
+            end
+          end
+#        end
+#        File.open("profile.html", 'w') { |file| RubyProf::GraphHtmlPrinter.new(profile).print(file, 0) }
       end
     end
-    
+        
   end
   
 end