tasks/gems/aws-sdk-sns.rb (42 lines of code) (raw):
# frozen_string_literal: true
module Benchmark
module Gems
class SNS < Benchmark::Gem
def gem_name
'aws-sdk-sns'
end
def gem_dir
"gems/#{gem_name}"
end
def client_module_name
'Aws::SNS'
end
def operation_benchmarks
{
publish_small: {
setup: proc do |_client|
{ topic_arn: 'topic', subject: 'subject', message: 'message' }
end,
test: proc do |client, req|
client.publish(req)
end
},
publish_large: {
setup: proc do |_client|
{
topic_arn: 'topic',
subject: 'subject',
message: 'message' * 1000,
message_attributes: (0..100).map do |i|
["key#{i}", { data_type: 'String', string_value: "string data#{i}" }]
end.to_h
}
end,
test: proc do |client, req|
client.publish(req)
end
}
}
end
end
end
end