benchmark/logging.rb in fluq-0.7.0 vs benchmark/logging.rb in fluq-0.7.1

- old
+ new

@@ -4,34 +4,34 @@ require 'bundler/setup' require 'fluq' require 'benchmark' -ITER = 100_000 +ITER = 1_000 +SLICE = 1_000 -MultiJson.use :oj FileUtils.rm_rf FluQ.root.join("log/benchmark") -events = (1..ITER).map do - FluQ::Event.new "a.b#{rand(4)}.c#{rand(100)}.d#{rand(100)}", Time.now.to_i, "k1" => "value", "k2" => "value", "k3" => "value" +events = (1..SLICE).map do + FluQ::Event.new "a.b#{rand(4)}.c#{rand(10)}.d#{rand(100)}", Time.now.to_i, "k1" => "value", "k2" => "value", "k3" => "value" end -handler = FluQ::Handler::Log.new \ +handler = FluQ::Handler::Log.new FluQ::Reactor.new, path: "log/benchmark/%Y%m/%d/%H/%t.log", - rewrite: lambda {|t| t.split(".")[1] } + rewrite: lambda {|t| t.split(".")[1, 2].join("-") } puts "--> Started benchmark" processed = Benchmark.realtime do num = 0 - events.each_slice(1_000) do |slice| - handler.on_events(slice) - num += slice.size + ITER.times do + handler.on_events(events) + num += SLICE if (num % 10_000).zero? puts "--> Processed : #{num}" end end end puts "--> Processed : #{events.size} in #{processed.round(1)}s" files = Dir[FluQ.root.join("log/benchmark/**/*.log").to_s] lines = `cat #{files.join(' ')} | wc -l`.strip -puts "--> Written : #{lines} lines" +puts "--> Fsynched : #{lines} lines"