commit cfe271237eefdd6b5800ed39527850c74e7b87fe
parent cb33b2b45764fa42ed1c7545a7bbad04fed6ab0d
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Wed, 24 Mar 2010 23:11:21 -0700
benchmark maildir search/glob
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/sup/maildir.rb b/lib/sup/maildir.rb
@@ -86,8 +86,8 @@ class Maildir < Source
## XXX use less memory
def each
- old_ids = Enumerator.new(Index, :each_source_info, self.id).to_a
- new_ids = Dir.glob("#{@dir}/*/*").map { |x| x[@dir.length..-1] }.sort
+ old_ids = benchmark(:index) { Enumerator.new(Index, :each_source_info, self.id).to_a }
+ new_ids = benchmark(:glob) { Dir.glob("#{@dir}/*/*").map { |x| x[@dir.length..-1] }.sort }
added = new_ids - old_ids
deleted = old_ids - new_ids
info "#{added.size} added, #{deleted.size} deleted"
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
@@ -4,6 +4,7 @@ require 'mime/types'
require 'pathname'
require 'set'
require 'enumerator'
+require 'benchmark'
## time for some monkeypatching!
class Lockfile
@@ -176,6 +177,13 @@ class Object
EOF
end
end
+
+ def benchmark s, &b
+ ret = nil
+ times = Benchmark.measure { ret = b.call }
+ debug "benchmark #{s}: #{times}"
+ ret
+ end
end
class String