Sha256: 2460bad962d3a7cee13fc9356b4039f1a57734513c445b8cf55e87b6d9b2f251
Contents?: true
Size: 994 Bytes
Versions: 2
Compression:
Stored size: 994 Bytes
Contents
#!/usr/bin/env ruby #require 'rubygems' require 'Grok' #require 'ruby-prof' require 'pp' #RubyProf.start iterations = 200 pattern = "[A-z0-9_-]*\\[[0-9]+\\]" grok = Grok.new grok.add_pattern("FOO", pattern) grok.compile("%{FOO}") rubyre = Regexp.new("(?<foo>#{pattern})") #rubyre = Regexp.new(pattern) matches = { :grok => 0, :rubyre => 0 } def time(iterations, &block) start = Time.now data = File.open("/b/messages").readlines() 0.upto(iterations) do |i| data.each do |line| block.call(line) end end return Time.now - start end groktime = time(iterations) do |line| m = grok.match(line) if m matches[:grok] += 1 m.captures["FOO"] end end rubyretime = time(iterations) do |line| m = rubyre.match(line) if m matches[:rubyre] += 1 m["foo"] end end puts "Grok: #{groktime}" puts "rubyre: #{rubyretime}" puts matches.inspect #result = RubyProf.stop #printer = RubyProf::FlatPrinter.new(result) #printer.print(STDOUT, 0) pp matches
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jls-grok-0.1.2787 | test/speedtest.rb |
jls-grok-0.1.2786 | test/speedtest.rb |