Initial commit
This commit is contained in:
140
lib/tasks/bench.rake
Normal file
140
lib/tasks/bench.rake
Normal file
@@ -0,0 +1,140 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# TODO: Add descriptions.
|
||||
# TODO: Don't sleep in case of last bench.
|
||||
# TODO: Remove legacy benchmarks.
|
||||
namespace :bench do
|
||||
|
||||
namespace :matching do
|
||||
|
||||
desc 'Matching with amqp messages'
|
||||
task :amqp, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/matching.yml')
|
||||
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
|
||||
matching = Bench::Matching::AMQP.new(config)
|
||||
matching.run!
|
||||
memo << matching
|
||||
matching.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each {|b| Kernel.pp b.result}
|
||||
end
|
||||
|
||||
desc 'Matching without amqp messages'
|
||||
task :direct, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/matching.yml')
|
||||
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
|
||||
matching = Bench::Matching::Direct.new(config)
|
||||
matching.run!
|
||||
memo << matching
|
||||
matching.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each {|b| Kernel.pp b.result}
|
||||
end
|
||||
end
|
||||
|
||||
namespace :trade_execution do
|
||||
|
||||
desc 'Trade Execution with amqp messages'
|
||||
task :amqp, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/trade_execution.yml')
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
trade_execution = ::Bench::TradeExecution::AMQP.new(config)
|
||||
trade_execution.run!
|
||||
memo << trade_execution
|
||||
trade_execution.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each {|b| Kernel.pp b.result}
|
||||
end
|
||||
|
||||
desc 'Trade execution without amqp messages'
|
||||
task :direct, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/trade_execution.yml')
|
||||
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
|
||||
trade_execution = ::Bench::TradeExecution::Direct.new(config)
|
||||
trade_execution.run!
|
||||
memo << trade_execution
|
||||
trade_execution.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each {|b| Kernel.pp b.result}
|
||||
end
|
||||
end
|
||||
|
||||
namespace :order_processing do
|
||||
|
||||
desc 'Order Processing with amqp messages'
|
||||
task :amqp, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/order_processing.yml')
|
||||
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
|
||||
order_processing = ::Bench::OrderProcessing::AMQP.new(config)
|
||||
order_processing.run!
|
||||
memo << order_processing
|
||||
order_processing.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each {|b| Kernel.pp b.result}
|
||||
end
|
||||
|
||||
desc 'Order Processing without amqp messages'
|
||||
task :direct, [:config_load_path] => [:environment] do |_t, args|
|
||||
args.with_defaults(:config_load_path => 'config/bench/order_processing.yml')
|
||||
|
||||
benches =
|
||||
YAML.load_file(Rails.root.join(args[:config_load_path]))
|
||||
.map(&:deep_symbolize_keys)
|
||||
.each_with_object([]) do |config, memo|
|
||||
Kernel.pp config
|
||||
|
||||
order_processing = Bench::OrderProcessing::Direct.new(config)
|
||||
order_processing.run!
|
||||
memo << order_processing
|
||||
order_processing.save_report
|
||||
Kernel.puts "Sleep before next bench"
|
||||
sleep 5
|
||||
end
|
||||
|
||||
benches.each { |b| Kernel.pp b.result }
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user