From 81439c61be949ebf46ff31d2199a38f7a35d3265 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Wed, 4 Jan 2023 18:31:56 -0700 Subject: [PATCH 01/14] Sketch out a client side muxer with a wildcard subscription --- lib/protobuf/nats/client.rb | 97 +++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index 4291618..01b12d7 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -250,6 +250,103 @@ def nats_request_with_two_responses(subject, data, opts) end end + if false + + def nats_request_with_two_responses(subject, data, opts) + # Wait for the ACK from the server + ack_timeout = opts[:ack_timeout] || 5 + # Wait for the protobuf response + timeout = opts[:timeout] || 60 + + nats = Protobuf::Nats.client_nats_connection + + # Cheap check first before synchronize + unless @resp_sub_prefix + synchronize do + # TODO: This needs to be global, yo. + start_request_muxer! unless @resp_sub_prefix + end + end + + # Publish message with the reply topic pointed at the response muxer. + token = nats.new_inbox + signal = @resp_sub.new_cond + @resp_sub.synchronize do + @resp_map[token][:signal] = signal + end + reply_to = "#{@resp_inbox_prefix}.#{token}" + nats.publish(subject, data, reply_to) + + # Wait for reply + + # Receive the first message + ::MonotonicTime::with_nats_timeout(ack_timeout) do + @resp_sub.synchronize do + signal.wait(ack_timeout) + end + rescue ::NATS::Timeout => e + return :ack_timeout + end + + # Check for a NACK + first_message = @resp_sub.synchronize { @resp_map[token][:response].shift } + return :nack if first_message.data == ::Protobuf::Nats::Messages::NACK + + # Receive the second message + ::MonotonicTime::with_nats_timeout(timeout) do + @resp_sub.synchronize do + signal.wait(timeout) + end + rescue ::NATS::Timeout => e + fail ::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name + end + + second_message = @resp_sub.synchronize { @resp_map[token][:response].shift } + + # Check messages + response = case ::Protobuf::Nats::Messages::ACK + when first_message.data then second_message.data + when second_message.data then first_message.data + else return :ack_timeout + end + + response + ensure + cleanup_muxer_topic(topic) if topic + end + + def cleanup_muxer_topic(topic) + @resp_sub.synchronize do + @resp_map.delete(token) + end + end + + def start_request_muxer! + nats = Protobuf::Nats.client_nats_connection + @resp_inbox_prefix = nats.new_inbox + @resp_map = Hash.new { |h,k| h[k] = { } } + @resp_sub = nats.subscribe("#{@resp_inbox_prefix}.*") + + Thread.new do + loop do + msg = @resp_sub.pending_queue.pop + next if msg.nil? + @resp_sub.synchronize do + # Decrease pending size since consumed already + @resp_sub.pending_size -= msg.data.size + end + token = msg.subject.split('.').last + + @resp_sub.synchronize do + future = @resp_map[token][:signal] + @resp_map[token][:response] ||= [] + @resp_map[token][:response] << msg + future.signal + end + end + end + end + else def nats_request_with_two_responses(subject, data, opts) From ee14969c52b00091f8fa12531a783e85ce0d8980 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Wed, 4 Jan 2023 19:19:59 -0700 Subject: [PATCH 02/14] Fix up a few things with the new ruby pure client --- lib/protobuf/nats/client.rb | 17 +++++++++----- lib/protobuf/nats/server.rb | 45 ++++++++++++++++++++++++++++++++----- protobuf-nats.gemspec | 2 +- spec/fake_nats_client.rb | 1 + 4 files changed, 53 insertions(+), 12 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index 01b12d7..2cf12ef 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -6,6 +6,9 @@ module Protobuf module Nats class Client < ::Protobuf::Rpc::Connectors::Base + + CLIENT_MUTEX = ::Mutex.new + # Structure to hold subscription and inbox to use within pool SubscriptionInbox = ::Struct.new(:subscription, :inbox) do def swap(sub_inbox) @@ -250,7 +253,7 @@ def nats_request_with_two_responses(subject, data, opts) end end - if false + elsif true def nats_request_with_two_responses(subject, data, opts) # Wait for the ACK from the server @@ -262,7 +265,7 @@ def nats_request_with_two_responses(subject, data, opts) # Cheap check first before synchronize unless @resp_sub_prefix - synchronize do + CLIENT_MUTEX.synchronize do # TODO: This needs to be global, yo. start_request_muxer! unless @resp_sub_prefix end @@ -303,6 +306,9 @@ def nats_request_with_two_responses(subject, data, opts) second_message = @resp_sub.synchronize { @resp_map[token][:response].shift } + require "pry"; binding.pry + + # Check messages response = case ::Protobuf::Nats::Messages::ACK when first_message.data then second_message.data @@ -312,10 +318,9 @@ def nats_request_with_two_responses(subject, data, opts) response ensure - cleanup_muxer_topic(topic) if topic - end + return if @resp_sub.nil? - def cleanup_muxer_topic(topic) + # Clean up @resp_sub.synchronize do @resp_map.delete(token) end @@ -349,6 +354,8 @@ def start_request_muxer! else + fail "barf" + def nats_request_with_two_responses(subject, data, opts) nats = Protobuf::Nats.client_nats_connection inbox = nats.new_inbox diff --git a/lib/protobuf/nats/server.rb b/lib/protobuf/nats/server.rb index da231be..bf4349c 100644 --- a/lib/protobuf/nats/server.rb +++ b/lib/protobuf/nats/server.rb @@ -6,11 +6,45 @@ module Protobuf module Nats + class SuperSubscriptionManager + def initialize(nats, &cb) + # Central queue used by all subscriptions + @pending_queue = ::SizedQueue.new(::NATS::IO::DEFAULT_SUB_PENDING_MSGS_LIMIT) + @subscriptions = [] + @nats = nats + + Thread.new do + loop do + msg = @pending_queue.pop + cb.call(msg.data, msg.reply) + end + end + end + + def queue_subscribe(name) + sub = @nats.subscribe(name, :queue => name) + + # Create a subscription but reset the pending queue to use a central pending queue. + # NOTE: This is a potential race condition. Chances of the round-trip message to an + # existing queue before this queue swap happens seems extremely low, but possible. + sub.pending_queue = @pending_queue + + @subscriptions << sub + + sub + end + + def unsubscribe_all + subscriptions.each { |sub| sub.unsubscribe } + end + end + + class Server include ::Protobuf::Rpc::Server include ::Protobuf::Logging - attr_reader :nats, :thread_pool, :subscriptions + attr_reader :nats, :thread_pool, :subscription_manager MILLISECOND = 1000 @@ -25,7 +59,8 @@ def initialize(options) @thread_pool = ::Protobuf::Nats::ThreadPool.new(@options[:threads], :max_queue => max_queue_size) - @subscriptions = [] + @subscription_manager = SuperSubscriptionManager.new(@nats) do + end @server = options.fetch(:server, ::Socket.gethostname) end @@ -114,7 +149,7 @@ def print_subscription_keys def subscribe_to_services_once with_each_subscription_key do |subscription_key_and_queue| - subscriptions << nats.subscribe(subscription_key_and_queue, :queue => subscription_key_and_queue) do |request_data, reply_id, _subject| + subscription_manager.queue_subscribe(subscription_key_and_queue) do |request_data, reply_id| unless enqueue_request(request_data, reply_id) logger.error { "Thread pool is full! Dropping message for: #{subscription_key_and_queue}" } end @@ -233,9 +268,7 @@ def subscribe def unsubscribe logger.info "Unsubscribing from rpc routes..." - subscriptions.each do |subscription_id| - nats.unsubscribe(subscription_id) - end + subscription_manager.unsubscribe_all end end end diff --git a/protobuf-nats.gemspec b/protobuf-nats.gemspec index 1fff921..61a4b9d 100644 --- a/protobuf-nats.gemspec +++ b/protobuf-nats.gemspec @@ -33,7 +33,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "activesupport", ">= 3.2" spec.add_runtime_dependency "connection_pool" spec.add_runtime_dependency "protobuf", "~> 3.7", ">= 3.7.2" - spec.add_runtime_dependency "nats-pure", "~> 0.3", "< 0.4" + spec.add_runtime_dependency "nats-pure", "~> 2" spec.add_development_dependency "bundler" spec.add_development_dependency "rake", "~> 10.0" diff --git a/spec/fake_nats_client.rb b/spec/fake_nats_client.rb index d514541..2d70aa1 100644 --- a/spec/fake_nats_client.rb +++ b/spec/fake_nats_client.rb @@ -26,6 +26,7 @@ def flush def subscribe(subject, args, &block) subscriptions[subject] = block + ::NATS::Subscription.new end def unsubscribe(*) From f85d4dc42f58c7617bec94dad3cd4f631fb3249f Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Wed, 4 Jan 2023 20:48:05 -0700 Subject: [PATCH 03/14] Fix up tests.. mocks are not great --- lib/protobuf/nats/client.rb | 37 ++++++++++++++++++++++--------------- spec/fake_nats_client.rb | 28 ++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index 2cf12ef..be7162b 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -283,9 +283,11 @@ def nats_request_with_two_responses(subject, data, opts) # Wait for reply # Receive the first message - ::MonotonicTime::with_nats_timeout(ack_timeout) do - @resp_sub.synchronize do - signal.wait(ack_timeout) + begin + ::NATS::MonotonicTime::with_nats_timeout(ack_timeout) do + @resp_sub.synchronize do + signal.wait(ack_timeout) + end end rescue ::NATS::Timeout => e return :ack_timeout @@ -296,26 +298,28 @@ def nats_request_with_two_responses(subject, data, opts) return :nack if first_message.data == ::Protobuf::Nats::Messages::NACK # Receive the second message - ::MonotonicTime::with_nats_timeout(timeout) do - @resp_sub.synchronize do - signal.wait(timeout) + begin + ::NATS::MonotonicTime::with_nats_timeout(timeout) do + @resp_sub.synchronize do + signal.wait(timeout) + end end - rescue ::NATS::Timeout => e - fail ::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name + rescue ::NATS::Timeout + # ignore to raise a repsonse timeout below end - second_message = @resp_sub.synchronize { @resp_map[token][:response].shift } - - require "pry"; binding.pry - + # NOTE: This might be nil, so be careful checking the data value + second_message_data = @resp_sub.synchronize { @resp_map[token][:response].shift }&.data # Check messages response = case ::Protobuf::Nats::Messages::ACK - when first_message.data then second_message.data - when second_message.data then first_message.data + when first_message.data then second_message_data + when second_message_data then first_message.data else return :ack_timeout end + fail(::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name) unless response + response ensure return if @resp_sub.nil? @@ -343,6 +347,9 @@ def start_request_muxer! token = msg.subject.split('.').last @resp_sub.synchronize do + # Reject if the token is missing from the request map + next unless @resp_map.key?(token) + future = @resp_map[token][:signal] @resp_map[token][:response] ||= [] @resp_map[token][:response] << msg @@ -354,7 +361,7 @@ def start_request_muxer! else - fail "barf" + fail "no longer using this impl for MRI" def nats_request_with_two_responses(subject, data, opts) nats = Protobuf::Nats.client_nats_connection diff --git a/spec/fake_nats_client.rb b/spec/fake_nats_client.rb index 2d70aa1..1c44527 100644 --- a/spec/fake_nats_client.rb +++ b/spec/fake_nats_client.rb @@ -24,9 +24,13 @@ def publish(*) def flush end - def subscribe(subject, args, &block) - subscriptions[subject] = block - ::NATS::Subscription.new + def subscribe(subject, args = {}, &block) + s = ::NATS::Subscription.new + s.pending_queue = ::SizedQueue.new(1024) + + subscriptions[subject] = {:block => block, :subscription => s } + + s end def unsubscribe(*) @@ -48,9 +52,15 @@ def schedule_messages(messages) Thread.new do begin sleep message.seconds_in_future - block = subscriptions[message.subject] + + sub = subscriptions[message.subject] || + subscriptions[message.subject.split(".").first + ".*"] + + block = sub[:block] block.call(message.data) if block @next_message = message + s = sub[:subscription] + s.pending_queue.push(message) if s.pending_queue rescue => error puts error end @@ -60,8 +70,14 @@ def schedule_messages(messages) end class FakeNackClient < FakeNatsClient - def subscribe(subject, args, &block) - Thread.new { block.call(::Protobuf::Nats::Messages::NACK) } + def subscribe(subject, args = {}, &block) + s = super + + Thread.new { block.call(::Protobuf::Nats::Messages::NACK) } if block + + s.pending_queue.push(NATS::Msg.new(:data => ::Protobuf::Nats::Messages::NACK, :subject => "BASE.#{@inbox}")) + + s end def next_message(_sub, _timeout) From bec0a799092161d53c83009f8b83b0adb2be1c07 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Wed, 4 Jan 2023 22:51:20 -0700 Subject: [PATCH 04/14] Add a working global response muxer --- lib/protobuf/nats/client.rb | 178 +++++++++++++++++++++++------------- lib/protobuf/nats/server.rb | 11 +-- spec/fake_nats_client.rb | 13 ++- 3 files changed, 129 insertions(+), 73 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index be7162b..9f4a60f 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -5,9 +5,114 @@ module Protobuf module Nats + class ResponseMuxerRequest + def initialize(muxer, token, signal) + @muxer = muxer + @token = token + @signal = signal + end + + def publish(subject, data) + @muxer.publish(subject, data, @token) + end + + def next_message(timeout) + @muxer.next_message(@token, timeout) + end + + def cleanup + @muxer.cleanup(@token) + end + end + + class ResponseMuxer + LOCK = ::Mutex.new + + def initialize + @resp_map = Hash.new { |h,k| h[k] = { } } + end + + def cleanup(token) + @resp_sub.synchronize { @resp_map.delete(token) } + end + + def next_message(token, timeout) + ::NATS::MonotonicTime::with_nats_timeout(timeout) do + @resp_sub.synchronize do + break if @resp_map[token].key?(:response) && + !@resp_map[token][:response].empty? + + @resp_map[token][:signal].wait(timeout) + end + end + + @resp_sub.synchronize { @resp_map[token][:response].shift } + end + + def new_request + nats = Protobuf::Nats.client_nats_connection + token = nats.new_inbox.split('.').last + signal = @resp_sub.new_cond + @resp_sub.synchronize do + @resp_map[token][:signal] = signal + end + + ResponseMuxerRequest.new(self, token, signal) + end + + def publish(subject, data, token) + nats = Protobuf::Nats.client_nats_connection + reply_to = "#{@resp_inbox_prefix}.#{token}" + nats.publish(subject, data, reply_to) + end + + def start + return if started? + LOCK.synchronize do + # We check this twice in case another thread was waiting for the lock to + # start this party. + return if started? + + nats = ::Protobuf::Nats.client_nats_connection + return if nats.nil? + + @resp_inbox_prefix = nats.new_inbox + @resp_sub = nats.subscribe("#{@resp_inbox_prefix}.*") + @started = true + end + + Thread.new do + loop do + msg = @resp_sub.pending_queue.pop + next if msg.nil? + @resp_sub.synchronize do + # Decrease pending size since consumed already + @resp_sub.pending_size -= msg.data.size + end + token = msg.subject.split('.').last + + @resp_sub.synchronize do + # Reject if the token is missing from the request map + break unless @resp_map.key?(token) + + signal = @resp_map[token][:signal] + @resp_map[token][:response] ||= [] + @resp_map[token][:response] << msg + signal.signal + end + end + end + end + + def started? + !!@started + end + end + class Client < ::Protobuf::Rpc::Connectors::Base CLIENT_MUTEX = ::Mutex.new + RESPONSE_MUXER = ResponseMuxer.new # Structure to hold subscription and inbox to use within pool SubscriptionInbox = ::Struct.new(:subscription, :inbox) do @@ -39,6 +144,9 @@ def initialize(options) # This will ensure the client is started. ::Protobuf::Nats.start_client_nats_connection + + # Ensure the response muxer is started + RESPONSE_MUXER.start end def new_subscription_inbox @@ -263,53 +371,29 @@ def nats_request_with_two_responses(subject, data, opts) nats = Protobuf::Nats.client_nats_connection - # Cheap check first before synchronize - unless @resp_sub_prefix - CLIENT_MUTEX.synchronize do - # TODO: This needs to be global, yo. - start_request_muxer! unless @resp_sub_prefix - end - end - # Publish message with the reply topic pointed at the response muxer. - token = nats.new_inbox - signal = @resp_sub.new_cond - @resp_sub.synchronize do - @resp_map[token][:signal] = signal - end - reply_to = "#{@resp_inbox_prefix}.#{token}" - nats.publish(subject, data, reply_to) - - # Wait for reply + req = RESPONSE_MUXER.new_request + req.publish(subject, data) # Receive the first message begin - ::NATS::MonotonicTime::with_nats_timeout(ack_timeout) do - @resp_sub.synchronize do - signal.wait(ack_timeout) - end - end + first_message = req.next_message(ack_timeout) rescue ::NATS::Timeout => e return :ack_timeout end # Check for a NACK - first_message = @resp_sub.synchronize { @resp_map[token][:response].shift } return :nack if first_message.data == ::Protobuf::Nats::Messages::NACK # Receive the second message begin - ::NATS::MonotonicTime::with_nats_timeout(timeout) do - @resp_sub.synchronize do - signal.wait(timeout) - end - end + second_message = req.next_message(timeout) rescue ::NATS::Timeout # ignore to raise a repsonse timeout below end # NOTE: This might be nil, so be careful checking the data value - second_message_data = @resp_sub.synchronize { @resp_map[token][:response].shift }&.data + second_message_data = second_message&.data # Check messages response = case ::Protobuf::Nats::Messages::ACK @@ -322,41 +406,7 @@ def nats_request_with_two_responses(subject, data, opts) response ensure - return if @resp_sub.nil? - - # Clean up - @resp_sub.synchronize do - @resp_map.delete(token) - end - end - - def start_request_muxer! - nats = Protobuf::Nats.client_nats_connection - @resp_inbox_prefix = nats.new_inbox - @resp_map = Hash.new { |h,k| h[k] = { } } - @resp_sub = nats.subscribe("#{@resp_inbox_prefix}.*") - - Thread.new do - loop do - msg = @resp_sub.pending_queue.pop - next if msg.nil? - @resp_sub.synchronize do - # Decrease pending size since consumed already - @resp_sub.pending_size -= msg.data.size - end - token = msg.subject.split('.').last - - @resp_sub.synchronize do - # Reject if the token is missing from the request map - next unless @resp_map.key?(token) - - future = @resp_map[token][:signal] - @resp_map[token][:response] ||= [] - @resp_map[token][:response] << msg - future.signal - end - end - end + req.cleanup if req end else diff --git a/lib/protobuf/nats/server.rb b/lib/protobuf/nats/server.rb index bf4349c..bed48d9 100644 --- a/lib/protobuf/nats/server.rb +++ b/lib/protobuf/nats/server.rb @@ -59,7 +59,10 @@ def initialize(options) @thread_pool = ::Protobuf::Nats::ThreadPool.new(@options[:threads], :max_queue => max_queue_size) - @subscription_manager = SuperSubscriptionManager.new(@nats) do + @subscription_manager = SuperSubscriptionManager.new(@nats) do |request_data, reply_id| + unless enqueue_request(request_data, reply_id) + logger.error { "Thread pool is full! Dropping message for: #{subscription_key_and_queue}" } + end end @server = options.fetch(:server, ::Socket.gethostname) end @@ -149,11 +152,7 @@ def print_subscription_keys def subscribe_to_services_once with_each_subscription_key do |subscription_key_and_queue| - subscription_manager.queue_subscribe(subscription_key_and_queue) do |request_data, reply_id| - unless enqueue_request(request_data, reply_id) - logger.error { "Thread pool is full! Dropping message for: #{subscription_key_and_queue}" } - end - end + subscription_manager.queue_subscribe(subscription_key_and_queue) end end diff --git a/spec/fake_nats_client.rb b/spec/fake_nats_client.rb index 1c44527..a7b390c 100644 --- a/spec/fake_nats_client.rb +++ b/spec/fake_nats_client.rb @@ -70,12 +70,19 @@ def schedule_messages(messages) end class FakeNackClient < FakeNatsClient + def publish(*) + subscriptions.each do |_key, sub| + s = sub[:subscription] + s.pending_queue.push(NATS::Msg.new(:data => ::Protobuf::Nats::Messages::NACK, :subject => "BASE.#{@inbox}")) + end + end + def subscribe(subject, args = {}, &block) s = super - Thread.new { block.call(::Protobuf::Nats::Messages::NACK) } if block - - s.pending_queue.push(NATS::Msg.new(:data => ::Protobuf::Nats::Messages::NACK, :subject => "BASE.#{@inbox}")) + Thread.new do + block.call(::Protobuf::Nats::Messages::NACK) if block + end s end From 73f0fa0de4393851d28b5091b93fb868c2aa04a7 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 06:52:10 -0700 Subject: [PATCH 05/14] Reset the muxer between each test (as the client changes) --- lib/protobuf/nats/client.rb | 21 +++++++++++++++------ spec/spec_helper.rb | 4 +++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index 9f4a60f..c8235df 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -6,10 +6,9 @@ module Protobuf module Nats class ResponseMuxerRequest - def initialize(muxer, token, signal) + def initialize(muxer, token) @muxer = muxer @token = token - @signal = signal end def publish(subject, data) @@ -52,12 +51,11 @@ def next_message(token, timeout) def new_request nats = Protobuf::Nats.client_nats_connection token = nats.new_inbox.split('.').last - signal = @resp_sub.new_cond @resp_sub.synchronize do - @resp_map[token][:signal] = signal + @resp_map[token][:signal] = @resp_sub.new_cond end - ResponseMuxerRequest.new(self, token, signal) + ResponseMuxerRequest.new(self, token) end def publish(subject, data, token) @@ -66,6 +64,17 @@ def publish(subject, data, token) nats.publish(subject, data, reply_to) end + def restart + start unless started? + + LOCK.synchronize do + @resp_handler&.kill + @started = false + end + + start + end + def start return if started? LOCK.synchronize do @@ -81,7 +90,7 @@ def start @started = true end - Thread.new do + @resp_handler = Thread.new do loop do msg = @resp_sub.pending_queue.pop next if msg.nil? diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6a0f2e3..40afe57 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -17,6 +17,8 @@ end config.before(:each) do - allow(Protobuf::Nats).to receive(:start_client_nats_connection) + allow(::Protobuf::Nats).to receive(:start_client_nats_connection) + + ::Protobuf::Nats::Client::RESPONSE_MUXER.restart end end From fbec8360fc62b49b084f8e627157da4a374c24c9 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 06:55:26 -0700 Subject: [PATCH 06/14] Add error handler when client response muxer handler fails --- lib/protobuf/nats/client.rb | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index c8235df..c54a945 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -91,23 +91,28 @@ def start end @resp_handler = Thread.new do - loop do - msg = @resp_sub.pending_queue.pop - next if msg.nil? - @resp_sub.synchronize do - # Decrease pending size since consumed already - @resp_sub.pending_size -= msg.data.size - end - token = msg.subject.split('.').last + begin + loop do + msg = @resp_sub.pending_queue.pop + next if msg.nil? + @resp_sub.synchronize do + # Decrease pending size since consumed already + @resp_sub.pending_size -= msg.data.size + end + token = msg.subject.split('.').last - @resp_sub.synchronize do - # Reject if the token is missing from the request map - break unless @resp_map.key?(token) + @resp_sub.synchronize do + # Reject if the token is missing from the request map + break unless @resp_map.key?(token) - signal = @resp_map[token][:signal] - @resp_map[token][:response] ||= [] - @resp_map[token][:response] << msg - signal.signal + signal = @resp_map[token][:signal] + @resp_map[token][:response] ||= [] + @resp_map[token][:response] << msg + signal.signal + end + rescue => error + ::Protobuf::Nats.notify_error_callbacks(error) + LOCK.synchronize { @started = false } end end end From 010028da45ed436ffa4c1078d5fe1e04c644648f Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 07:19:00 -0700 Subject: [PATCH 07/14] Fork jruby/mri code as needed and remove old mri client impl --- lib/protobuf/nats/client.rb | 55 +------------------------------------ lib/protobuf/nats/server.rb | 35 +++++++++++++++-------- 2 files changed, 25 insertions(+), 65 deletions(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index c54a945..d913ccb 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -375,7 +375,7 @@ def nats_request_with_two_responses(subject, data, opts) end end - elsif true + else def nats_request_with_two_responses(subject, data, opts) # Wait for the ACK from the server @@ -423,59 +423,6 @@ def nats_request_with_two_responses(subject, data, opts) req.cleanup if req end - else - - fail "no longer using this impl for MRI" - - def nats_request_with_two_responses(subject, data, opts) - nats = Protobuf::Nats.client_nats_connection - inbox = nats.new_inbox - lock = ::Monitor.new - received = lock.new_cond - messages = [] - first_message = nil - second_message = nil - response = nil - - sid = nats.subscribe(inbox, :max => 2) do |message, _, _| - lock.synchronize do - messages << message - received.signal - end - end - - lock.synchronize do - # Publish to server - nats.publish(subject, data, inbox) - - # Wait for the ACK from the server - ack_timeout = opts[:ack_timeout] || 5 - received.wait(ack_timeout) if messages.empty? - first_message = messages.shift - - return :ack_timeout if first_message.nil? - return :nack if first_message == ::Protobuf::Nats::Messages::NACK - - # Wait for the protobuf response - timeout = opts[:timeout] || 60 - received.wait(timeout) if messages.empty? - second_message = messages.shift - end - - response = case ::Protobuf::Nats::Messages::ACK - when first_message then second_message - when second_message then first_message - else return :ack_timeout - end - - fail(::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name) unless response - - response - ensure - # Ensure we don't leave a subscription sitting around. - nats.unsubscribe(sid) if response.nil? - end - end end diff --git a/lib/protobuf/nats/server.rb b/lib/protobuf/nats/server.rb index bed48d9..edb0369 100644 --- a/lib/protobuf/nats/server.rb +++ b/lib/protobuf/nats/server.rb @@ -12,34 +12,47 @@ def initialize(nats, &cb) @pending_queue = ::SizedQueue.new(::NATS::IO::DEFAULT_SUB_PENDING_MSGS_LIMIT) @subscriptions = [] @nats = nats + @callback = cb - Thread.new do + # For MRI, reroute the pending queue to the callback + @pending_queue_handler = Thread.new do loop do msg = @pending_queue.pop - cb.call(msg.data, msg.reply) + @callback.call(msg.data, msg.reply) end end end def queue_subscribe(name) - sub = @nats.subscribe(name, :queue => name) + if defined? JRUBY_VERSION + @subscriptions << @nats.subscribe(name, :queue => name) do |request_data, reply_id| + @callback.call(request_data, reply_id) + end + else + sub = @nats.subscribe(name, :queue => name) - # Create a subscription but reset the pending queue to use a central pending queue. - # NOTE: This is a potential race condition. Chances of the round-trip message to an - # existing queue before this queue swap happens seems extremely low, but possible. - sub.pending_queue = @pending_queue + # Create a subscription but reset the pending queue to use a central pending queue. + # NOTE: This is a potential race condition. Chances of the round-trip message to an + # existing queue before this queue swap happens seems extremely low, but possible. + sub.pending_queue = @pending_queue - @subscriptions << sub + @subscriptions << sub - sub + sub + end end def unsubscribe_all - subscriptions.each { |sub| sub.unsubscribe } + if defined? JRUBY_VERSION + subscriptions.each do |subscription_id| + @nats.unsubscribe(subscription_id) + end + else + subscriptions.each { |sub| sub.unsubscribe } + end end end - class Server include ::Protobuf::Rpc::Server include ::Protobuf::Logging From 349744b617e45e5f00e80307d12849f0fdcbe141 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 07:41:34 -0700 Subject: [PATCH 08/14] Fix bugs + move platform to specific file The MRI client is working great for both jruby and mri --- lib/protobuf/nats.rb | 3 ++- lib/protobuf/nats/client.rb | 3 ++- lib/protobuf/nats/platform.rb | 14 ++++++++++++++ lib/protobuf/nats/server.rb | 8 ++++---- spec/protobuf/nats/jnats_spec.rb | 2 +- 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 lib/protobuf/nats/platform.rb diff --git a/lib/protobuf/nats.rb b/lib/protobuf/nats.rb index 82c0e9c..84475e2 100644 --- a/lib/protobuf/nats.rb +++ b/lib/protobuf/nats.rb @@ -6,6 +6,7 @@ require "nats/io/client" +require "protobuf/nats/platform" require "protobuf/nats/errors" require "protobuf/nats/client" require "protobuf/nats/server" @@ -23,7 +24,7 @@ module Messages NACK = "\2".freeze end - NatsClient = if defined? JRUBY_VERSION + NatsClient = if jruby? require "protobuf/nats/jnats" ::Protobuf::Nats::JNats else diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index d913ccb..fb0dadb 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -1,5 +1,6 @@ require "connection_pool" require "protobuf/nats" +require "protobuf/nats/platform" require "protobuf/rpc/connectors/base" require "monitor" @@ -320,7 +321,7 @@ def formatted_service_and_method_name # The Java nats client offers better message queueing so we're going to use # that over locking ourselves. This split in code isn't great, but we can # refactor this later. - if defined? JRUBY_VERSION + if ::Protobuf::Nats.jruby? # This is a request that expects two responses. # 1. An ACK from the server. We use a shorter timeout. diff --git a/lib/protobuf/nats/platform.rb b/lib/protobuf/nats/platform.rb new file mode 100644 index 0000000..c606c32 --- /dev/null +++ b/lib/protobuf/nats/platform.rb @@ -0,0 +1,14 @@ +module Protobuf + module Nats + def self.jruby? + return false if jnats_disabled? + + defined? JRUBY_VERSION + end + + def self.jnats_disabled? + !!ENV["PB_NATS_DISABLE_JNATS"] + end + end +end + diff --git a/lib/protobuf/nats/server.rb b/lib/protobuf/nats/server.rb index edb0369..922bb8d 100644 --- a/lib/protobuf/nats/server.rb +++ b/lib/protobuf/nats/server.rb @@ -24,7 +24,7 @@ def initialize(nats, &cb) end def queue_subscribe(name) - if defined? JRUBY_VERSION + if ::Protobuf::Nats.jruby? @subscriptions << @nats.subscribe(name, :queue => name) do |request_data, reply_id| @callback.call(request_data, reply_id) end @@ -43,12 +43,12 @@ def queue_subscribe(name) end def unsubscribe_all - if defined? JRUBY_VERSION - subscriptions.each do |subscription_id| + if ::Protobuf::Nats.jruby? + @subscriptions.each do |subscription_id| @nats.unsubscribe(subscription_id) end else - subscriptions.each { |sub| sub.unsubscribe } + @subscriptions.each { |sub| sub.unsubscribe } end end end diff --git a/spec/protobuf/nats/jnats_spec.rb b/spec/protobuf/nats/jnats_spec.rb index 7a02e27..6d8579c 100644 --- a/spec/protobuf/nats/jnats_spec.rb +++ b/spec/protobuf/nats/jnats_spec.rb @@ -1,6 +1,6 @@ require "rspec" -if defined?(JRUBY_VERSION) +if ::Protobuf::Nats.jruby? require "protobuf/nats/jnats" describe ::Protobuf::Nats::JNats do From 3e7ced5d1be449538d7ba2b0eba3876800943098 Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 07:51:55 -0700 Subject: [PATCH 09/14] Add new flag to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7b60f9d..4fc4479 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ used to allow JVM based servers to warm-up slowly to prevent jolts in runtime pe `PB_NATS_CLIENT_SUBSCRIPTION_POOL_SIZE` - If subscription pooling is desired for the request/response cycle then the pool size maximum should be set; the pool is lazy and therefore will only start new subscriptions as necessary (default: 0) +`PB_NATS_DISABLE_JNATS` - Disable the default jruby jnats client on the jruby platform, use the nats-pure.rb client instead (default: false). + `PROTOBUF_NATS_CONFIG_PATH` - Custom path to the config yaml (default: "config/protobuf_nats.yml"). ### YAML Config From 4684de8523fcfae5ea5060ed57240ff299fd479e Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Thu, 5 Jan 2023 09:58:58 -0700 Subject: [PATCH 10/14] Remove dead code --- lib/protobuf/nats/client.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index fb0dadb..c1a2a23 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -126,7 +126,6 @@ def started? class Client < ::Protobuf::Rpc::Connectors::Base - CLIENT_MUTEX = ::Mutex.new RESPONSE_MUXER = ResponseMuxer.new # Structure to hold subscription and inbox to use within pool From dafddfcd8662ef1376a782db4f7ef2e8fa4b158a Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Fri, 6 Jan 2023 16:17:30 -0700 Subject: [PATCH 11/14] Add a pre-release to the branch --- lib/protobuf/nats/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/protobuf/nats/version.rb b/lib/protobuf/nats/version.rb index 582b4f5..b79b36a 100644 --- a/lib/protobuf/nats/version.rb +++ b/lib/protobuf/nats/version.rb @@ -1,5 +1,5 @@ module Protobuf module Nats - VERSION = "0.10.4" + VERSION = "0.11.0.pre0" end end From 1f2e9a0db328930db1b37ea5e3b0df0bb25fca3d Mon Sep 17 00:00:00 2001 From: Garrett Thornburg Date: Fri, 6 Jan 2023 16:19:06 -0700 Subject: [PATCH 12/14] Bump to an unused pre-release version --- lib/protobuf/nats/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/protobuf/nats/version.rb b/lib/protobuf/nats/version.rb index b79b36a..07d55b9 100644 --- a/lib/protobuf/nats/version.rb +++ b/lib/protobuf/nats/version.rb @@ -1,5 +1,5 @@ module Protobuf module Nats - VERSION = "0.11.0.pre0" + VERSION = "0.12.0.pre0" end end From a9765952e101c3cc60bcd3110c56176eac51f0d2 Mon Sep 17 00:00:00 2001 From: John Bolliger Date: Mon, 1 Jun 2026 10:35:39 -0700 Subject: [PATCH 13/14] muxer, and ruby version upgrade, also added circleci --- .circleci/config.yml | 85 +++++++++++++++++++++++++++++++++++++++++++ protobuf-nats.gemspec | 7 +++- 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..0eddf35 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,85 @@ +version: 2.1 + +jobs: + build_and_test: + parameters: + docker_image: + type: string + description: "The Ruby or JRuby Docker image to test against" + + docker: + # 1. The Primary Container (where your code actually runs) + - image: << parameters.docker_image >> + environment: + JRUBY_OPTS: "-J-Xmx1024m" + RAILS_ENV: test + NATS_URL: "changeme" + + # 2. The Service Container (runs in the background) + - image: nats:2.14.1-linux + + working_directory: ~/project + + steps: + - run: + name: Install System Dependencies + command: | + if [ "$(id -u)" = "0" ]; then + apt-get update && apt-get install -y build-essential git + else + sudo apt-get update && sudo apt-get install -y build-essential git + fi + - checkout + # Note: We added the docker_image parameter to the cache key + # so MRI and JRuby gems don't conflict. + - restore_cache: + keys: + - v1-gems-<< parameters.docker_image >>-{{ checksum "Gemfile.lock" }} + - v1-gems-<< parameters.docker_image >>- + + - run: + name: Install Ruby Dependencies + command: | + gem install bundler + bundle config set --local path 'vendor/bundle' + bundle install --jobs=4 --retry=3 + + - save_cache: + paths: + - ./vendor/bundle + key: v1-gems-<< parameters.docker_image >>-{{ checksum "Gemfile.lock" }} + + # Wait for NATS to be ready before running tests. + # Service containers can sometimes take a few seconds to boot up. + - run: + name: Wait for NATS + command: | + if [ "$(id -u)" = "0" ]; then + apt-get install -y netcat-openbsd + else + sudo apt-get install -y netcat-openbsd + fi + + echo "Waiting for NATS to start..." + while ! nc -z localhost 4222; do + sleep 1 + done + echo "NATS is ready!" + + - run: + name: Run Tests + command: bundle exec rspec + +workflows: + version: 2 + ruby_compatibility_matrix: + jobs: + - build_and_test: + name: test-<< matrix.docker_image >> + matrix: + parameters: + docker_image: + - "cimg/ruby:3.1" + - "cimg/ruby:3.4" + - "jruby:9.4" + - "jruby:10.0" \ No newline at end of file diff --git a/protobuf-nats.gemspec b/protobuf-nats.gemspec index 61a4b9d..7f6b9b8 100644 --- a/protobuf-nats.gemspec +++ b/protobuf-nats.gemspec @@ -26,17 +26,20 @@ Gem::Specification.new do |spec| spec.files = `git ls-files -z`.split("\x0").reject do |f| f.match(%r{^(test|spec|features)/}) end + + spec.required_ruby_version = '>= 3.1.0' + spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_runtime_dependency "activesupport", ">= 3.2" + spec.add_runtime_dependency "activesupport", ">= 6.1" spec.add_runtime_dependency "connection_pool" spec.add_runtime_dependency "protobuf", "~> 3.7", ">= 3.7.2" spec.add_runtime_dependency "nats-pure", "~> 2" spec.add_development_dependency "bundler" - spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "rspec" spec.add_development_dependency "benchmark-ips" spec.add_development_dependency "pry" From 151838145778f4a447cd5a80d23630ec64bb891b Mon Sep 17 00:00:00 2001 From: John Bolliger Date: Mon, 1 Jun 2026 13:34:16 -0700 Subject: [PATCH 14/14] more testing --- Gemfile | 5 + bench/real_client.rb | 14 +- bench/real_client_profile.rb | 21 + lib/protobuf/nats.rb | 13 +- lib/protobuf/nats/client.rb | 114 ++-- lib/protobuf/nats/errors.rb | 12 +- lib/protobuf/nats/jnats.rb | 502 +++++++-------- lib/protobuf/nats/platform.rb | 14 +- lib/protobuf/nats/server.rb | 53 +- protobuf-nats.gemspec | 5 + real_client.out | 947 ++++++++++++++++++++++++++++ real_client.svg | 1001 ++++++++++++++++++++++++++++++ results.md | 40 ++ spec/protobuf/nats/jnats_spec.rb | 86 --- 14 files changed, 2393 insertions(+), 434 deletions(-) create mode 100644 bench/real_client_profile.rb create mode 100644 real_client.out create mode 100644 real_client.svg create mode 100644 results.md delete mode 100644 spec/protobuf/nats/jnats_spec.rb diff --git a/Gemfile b/Gemfile index 72c8882..021ece9 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,8 @@ source 'https://rubygems.org' # Specify your gem's dependencies in protobuf-nats.gemspec gemspec + + +platforms :jruby do + # gem "jruby-profiler-flame_graph_profile_printer", path: "/users/john.bolliger/github/jruby-profiler-flame_graph_profile_printer" +end diff --git a/bench/real_client.rb b/bench/real_client.rb index 69e922c..6293a42 100644 --- a/bench/real_client.rb +++ b/bench/real_client.rb @@ -4,14 +4,24 @@ require "benchmark/ips" require "./examples/warehouse/app" +# require "jruby/profiler/flame_graph_profile_printer" + Protobuf::Logging.logger = ::Logger.new(nil) +# should_profile = ENV["profile"] + Benchmark.ips do |config| - config.warmup = 10 - config.time = 10 + config.warmup = 15 + config.time = 30 config.report("single threaded performance") do req = Warehouse::Shipment.new(:guid => SecureRandom.uuid) Warehouse::ShipmentService.client.create(req) end end + + +# export JRUBY_OPTS="--disable:did_you_mean -J-Djava.security.egd=file:/dev/./urandom -J-Xmx2g -J-Xms1024m -J-Xmn512m --dev --debug --profile" +# +# export JRUBY_OPTS="--disable:did_you_mean -J-Djava.security.egd=file:/dev/./urandom -J-Xmx2g -J-Xms1024m -J-Xmn512m" +# diff --git a/bench/real_client_profile.rb b/bench/real_client_profile.rb new file mode 100644 index 0000000..6a4075a --- /dev/null +++ b/bench/real_client_profile.rb @@ -0,0 +1,21 @@ +# ENV["PB_CLIENT_TYPE"] = "protobuf/nats/client" +# ENV["PB_SERVER_TYPE"] = "protobuf/nats/runner" + +# require "benchmark/ips" +# require "./examples/warehouse/app" + +# # require "jruby/profiler/flame_graph_profile_printer" + +# Protobuf::Logging.logger = ::Logger.new(nil) + +# result = JRuby::Profiler.profile do +# 20_000.times do +# req = Warehouse::Shipment.new(:guid => SecureRandom.uuid) +# Warehouse::ShipmentService.client.create(req) +# end +# end + +# printer = JRuby::Profiler::FlameGraphProfilePrinter.new(result) +# stdout = File.open('real_client.out', 'w') +# printer.printProfile(stdout) +# stdout.close \ No newline at end of file diff --git a/lib/protobuf/nats.rb b/lib/protobuf/nats.rb index 84475e2..1f119f5 100644 --- a/lib/protobuf/nats.rb +++ b/lib/protobuf/nats.rb @@ -24,12 +24,13 @@ module Messages NACK = "\2".freeze end - NatsClient = if jruby? - require "protobuf/nats/jnats" - ::Protobuf::Nats::JNats - else - ::NATS::IO::Client - end + # NatsClient = if jruby? + # require "protobuf/nats/jnats" + # ::Protobuf::Nats::JNats + # else + # ::NATS::IO::Client + # end + NatsClient = ::NATS::IO::Client GET_CONNECTED_MUTEX = ::Mutex.new diff --git a/lib/protobuf/nats/client.rb b/lib/protobuf/nats/client.rb index c1a2a23..0af9e64 100644 --- a/lib/protobuf/nats/client.rb +++ b/lib/protobuf/nats/client.rb @@ -320,62 +320,62 @@ def formatted_service_and_method_name # The Java nats client offers better message queueing so we're going to use # that over locking ourselves. This split in code isn't great, but we can # refactor this later. - if ::Protobuf::Nats.jruby? - - # This is a request that expects two responses. - # 1. An ACK from the server. We use a shorter timeout. - # 2. A PB message from the server. We use a longer timoeut. - def nats_request_with_two_responses(subject, data, opts) - # Wait for the ACK from the server - ack_timeout = opts[:ack_timeout] || 5 - # Wait for the protobuf response - timeout = opts[:timeout] || 60 - - nats = ::Protobuf::Nats.client_nats_connection - - # Publish to server - with_subscription do |sub_inbox| - begin - completed_request = false - - if !sub_inbox.subscription.is_valid # replace the subscription if is has been pooled but is no longer valid (maybe a reconnect) - nats.unsubscribe(sub_inbox.subscription) - sub_inbox.swap(new_subscription_inbox) # this line replaces the sub_inbox in the connection pool if necessary - end - - nats.publish(subject, data, sub_inbox.inbox) - - # Wait for reply - first_message = nats.next_message(sub_inbox.subscription, ack_timeout) - return :ack_timeout if first_message.nil? - - first_message_data = first_message.data - return :nack if first_message_data == ::Protobuf::Nats::Messages::NACK - - second_message = nats.next_message(sub_inbox.subscription, timeout) - second_message_data = second_message.nil? ? nil : second_message.data - - # Check messages - response = case ::Protobuf::Nats::Messages::ACK - when first_message_data then second_message_data - when second_message_data then first_message_data - else return :ack_timeout - end - - fail(::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name) unless response - - completed_request = true - response - ensure - if !completed_request - nats.unsubscribe(sub_inbox.subscription) - sub_inbox.swap(new_subscription_inbox) # this line replaces the sub_inbox in the connection pool if necessary - end - end - end - end - - else + # if ::Protobuf::Nats.jruby? + + # # This is a request that expects two responses. + # # 1. An ACK from the server. We use a shorter timeout. + # # 2. A PB message from the server. We use a longer timoeut. + # def nats_request_with_two_responses(subject, data, opts) + # # Wait for the ACK from the server + # ack_timeout = opts[:ack_timeout] || 5 + # # Wait for the protobuf response + # timeout = opts[:timeout] || 60 + + # nats = ::Protobuf::Nats.client_nats_connection + + # # Publish to server + # with_subscription do |sub_inbox| + # begin + # completed_request = false + + # if !sub_inbox.subscription.is_valid # replace the subscription if is has been pooled but is no longer valid (maybe a reconnect) + # nats.unsubscribe(sub_inbox.subscription) + # sub_inbox.swap(new_subscription_inbox) # this line replaces the sub_inbox in the connection pool if necessary + # end + + # nats.publish(subject, data, sub_inbox.inbox) + + # # Wait for reply + # first_message = nats.next_message(sub_inbox.subscription, ack_timeout) + # return :ack_timeout if first_message.nil? + + # first_message_data = first_message.data + # return :nack if first_message_data == ::Protobuf::Nats::Messages::NACK + + # second_message = nats.next_message(sub_inbox.subscription, timeout) + # second_message_data = second_message.nil? ? nil : second_message.data + + # # Check messages + # response = case ::Protobuf::Nats::Messages::ACK + # when first_message_data then second_message_data + # when second_message_data then first_message_data + # else return :ack_timeout + # end + + # fail(::Protobuf::Nats::Errors::ResponseTimeout, formatted_service_and_method_name) unless response + + # completed_request = true + # response + # ensure + # if !completed_request + # nats.unsubscribe(sub_inbox.subscription) + # sub_inbox.swap(new_subscription_inbox) # this line replaces the sub_inbox in the connection pool if necessary + # end + # end + # end + # end + + # else def nats_request_with_two_responses(subject, data, opts) # Wait for the ACK from the server @@ -423,7 +423,7 @@ def nats_request_with_two_responses(subject, data, opts) req.cleanup if req end - end + # end end end diff --git a/lib/protobuf/nats/errors.rb b/lib/protobuf/nats/errors.rb index 0b13285..a1e6992 100644 --- a/lib/protobuf/nats/errors.rb +++ b/lib/protobuf/nats/errors.rb @@ -13,11 +13,13 @@ class ResponseTimeout < ClientError class MriIOException < ::StandardError end - IOException = if defined? JRUBY_VERSION - java.io.IOException - else - MriIOException - end + IOException = MriIOException + + # IOException = if defined? JRUBY_VERSION + # java.io.IOException + # else + # MriIOException + # end end end end diff --git a/lib/protobuf/nats/jnats.rb b/lib/protobuf/nats/jnats.rb index b376e58..12e90b5 100644 --- a/lib/protobuf/nats/jnats.rb +++ b/lib/protobuf/nats/jnats.rb @@ -1,251 +1,251 @@ -ext_base = ::File.join(::File.dirname(__FILE__), '..', '..', '..', 'ext') - -require ::File.join(ext_base, "jars/slf4j-api-1.7.25.jar") -require ::File.join(ext_base, "jars/slf4j-simple-1.7.25.jar") -require ::File.join(ext_base, "jars/gson-2.6.2.jar") -require ::File.join(ext_base, "jars/jnats-1.1-SNAPSHOT.jar") - -module Protobuf - module Nats - class JNats - attr_reader :connection, :options - - class Message - attr_reader :data, :subject, :reply - - def initialize(nats_message) - @data = nats_message.getData.to_s - @reply = nats_message.getReplyTo.to_s - @subject = nats_message.getSubject - end - end - - def initialize - @on_error_cb = lambda {|error|} - @on_reconnect_cb = lambda {} - @on_disconnect_cb = lambda {} - @on_close_cb = lambda {} - @options = nil - @subz_cbs = {} - @subz_mutex = ::Mutex.new - end - - def connect(options = {}) - @options ||= options - - servers = options[:servers] || ["nats://localhost:4222"] - servers = [servers].flatten.map { |uri_string| java.net.URI.new(uri_string) } - connection_factory = ::Java::IoNatsClient::ConnectionFactory.new - connection_factory.setServers(servers) - connection_factory.setMaxReconnect(options[:max_reconnect_attempts]) - - # Shrink the pending buffer to always raise an error and let the caller retry. - if options[:disable_reconnect_buffer] - connection_factory.setReconnectBufSize(1) - end - - # Setup callbacks - connection_factory.setDisconnectedCallback { |event| @on_disconnect_cb.call } - connection_factory.setReconnectedCallback { |_event| @on_reconnect_cb.call } - connection_factory.setClosedCallback { |_event| @on_close_cb.call } - connection_factory.setExceptionHandler { |error| @on_error_cb.call(error) } - - # Setup ssl context if we're using tls - if options[:uses_tls] - ssl_context = create_ssl_context(options) - connection_factory.setSecure(true) - connection_factory.setSSLContext(ssl_context) - end - - @connection = connection_factory.createConnection - - # We're going to spawn a consumer and supervisor - @work_queue = @connection.createMsgChannel - spwan_supervisor_and_consumer - - @connection - end - - def connection - return @connection unless @connection.nil? - # Ensure no consumer or supervisor are running - close - connect(options || {}) - end - - # Do not depend on #close for a graceful disconnect. - def close - @connection.close rescue nil - @connection = nil - @supervisor.kill rescue nil - @supervisor = nil - @consumer.kill rescue nil - @supervisor = nil - end - - def flush(timeout_sec = 0.5) - connection.flush(timeout_sec * 1000) - end - - def next_message(sub, timeout_sec) - nats_message = sub.nextMessage(timeout_sec * 1000) - return nil unless nats_message - Message.new(nats_message) - end - - def publish(subject, data, mailbox = nil) - # The "true" here is to force flush. May not need this. - connection.publish(subject, mailbox, data.to_java_bytes, true) - end - - def subscribe(subject, options = {}, &block) - queue = options[:queue] - max = options[:max] - work_queue = nil - # We pass our work queue for processing async work because java nats - # uses a cahced thread pool: 1 thread per async subscription. - # Sync subs need their own queue so work is not processed async. - work_queue = block.nil? ? connection.createMsgChannel : @work_queue - sub = connection.subscribe(subject, queue, nil, work_queue) - - # Register the block callback. We only lock to save the callback. - if block - @subz_mutex.synchronize do - @subz_cbs[sub.getSid] = block - end - end - - # Auto unsub if max message option was provided. - sub.autoUnsubscribe(max) if max - - sub - end - - def unsubscribe(sub) - return if sub.nil? - - # Cleanup our async callback - if @subz_cbs[sub.getSid] - @subz_mutex.synchronize do - @subz_cbs.delete(sub.getSid) - end - end - - # The "true" here is to ignore and invalid conn. - sub.unsubscribe(true) - end - - def new_inbox - "_INBOX.#{::SecureRandom.hex(13)}" - end - - def on_reconnect(&cb) - @on_reconnect_cb = cb - end - - def on_disconnect(&cb) - @on_disconnect_cb = cb - end - - def on_error(&cb) - @on_error_cb = cb - end - - def on_close(&cb) - @on_close_cb = cb - end - - private - - def spwan_supervisor_and_consumer - spawn_consumer - @supervisor = ::Thread.new do - loop do - begin - sleep 1 - next if @consumer && @consumer.alive? - # We need to recreate the consumer thread - @consumer.kill if @consumer - spawn_consumer - rescue => error - @on_error_cb.call(error) - end - end - end - end - - def spawn_consumer - @consumer = ::Thread.new do - loop do - begin - message = @work_queue.take - next unless message - sub = message.getSubscription - - # We have to update the subscription stats so we're not considered a slow consumer. - begin - sub.lock - sub.incrPMsgs(-1) - sub.incrPBytes(-message.getData.length) if message.getData - sub.incrDelivered(1) unless sub.isClosed - ensure - sub.unlock - end - - # We don't need t - callback = @subz_cbs[sub.getSid] - next unless callback - callback.call(message.getData.to_s, message.getReplyTo, message.getSubject) - rescue => error - @on_error_cb.call(error) - end - end - end - end - - # Jruby-openssl depends on bouncycastle so our lives don't suck super bad - def read_pem_object_from_file(path) - fail ::ArgumentError, "Tried to read a PEM key or cert with path nil" if path.nil? - - file_reader = java.io.FileReader.new(path) - pem_parser = org.bouncycastle.openssl.PEMParser.new(file_reader) - object = pem_parser.readObject - pem_parser.close - object - end - - def create_ssl_context(options) - # Create our certs and key converters to go from bouncycastle to java. - cert_converter = org.bouncycastle.cert.jcajce.JcaX509CertificateConverter.new - key_converter = org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.new - - # Load the certs and keys. - tls_ca_cert = cert_converter.getCertificate(read_pem_object_from_file(options[:tls_ca_cert])) - tls_client_cert = cert_converter.getCertificate(read_pem_object_from_file(options[:tls_client_cert])) - tls_client_key = key_converter.getKeyPair(read_pem_object_from_file(options[:tls_client_key])) - - # Setup the CA cert. - ca_key_store = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType) - ca_key_store.load(nil, nil) - ca_key_store.setCertificateEntry("ca-certificate", tls_ca_cert) - trust_manager = javax.net.ssl.TrustManagerFactory.getInstance(javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm) - trust_manager.init(ca_key_store) - - # Setup the cert / key pair. - client_key_store = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType) - client_key_store.load(nil, nil) - client_key_store.setCertificateEntry("certificate", tls_client_cert) - certificate_java_array = [tls_client_cert].to_java(java.security.cert.Certificate) - empty_password = [].to_java(:char) - client_key_store.setKeyEntry("private-key", tls_client_key.getPrivate, empty_password, certificate_java_array) - key_manager = javax.net.ssl.KeyManagerFactory.getInstance(javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm) - key_manager.init(client_key_store, empty_password) - - # Create ssl context. - context = javax.net.ssl.SSLContext.getInstance("TLSv1.2") - context.init(key_manager.getKeyManagers, trust_manager.getTrustManagers, nil) - context - end - end - end -end +# ext_base = ::File.join(::File.dirname(__FILE__), '..', '..', '..', 'ext') + +# require ::File.join(ext_base, "jars/slf4j-api-1.7.25.jar") +# require ::File.join(ext_base, "jars/slf4j-simple-1.7.25.jar") +# require ::File.join(ext_base, "jars/gson-2.6.2.jar") +# require ::File.join(ext_base, "jars/jnats-1.1-SNAPSHOT.jar") + +# module Protobuf +# module Nats +# class JNats +# attr_reader :connection, :options + +# class Message +# attr_reader :data, :subject, :reply + +# def initialize(nats_message) +# @data = nats_message.getData.to_s +# @reply = nats_message.getReplyTo.to_s +# @subject = nats_message.getSubject +# end +# end + +# def initialize +# @on_error_cb = lambda {|error|} +# @on_reconnect_cb = lambda {} +# @on_disconnect_cb = lambda {} +# @on_close_cb = lambda {} +# @options = nil +# @subz_cbs = {} +# @subz_mutex = ::Mutex.new +# end + +# def connect(options = {}) +# @options ||= options + +# servers = options[:servers] || ["nats://localhost:4222"] +# servers = [servers].flatten.map { |uri_string| java.net.URI.new(uri_string) } +# connection_factory = ::Java::IoNatsClient::ConnectionFactory.new +# connection_factory.setServers(servers) +# connection_factory.setMaxReconnect(options[:max_reconnect_attempts]) + +# # Shrink the pending buffer to always raise an error and let the caller retry. +# if options[:disable_reconnect_buffer] +# connection_factory.setReconnectBufSize(1) +# end + +# # Setup callbacks +# connection_factory.setDisconnectedCallback { |event| @on_disconnect_cb.call } +# connection_factory.setReconnectedCallback { |_event| @on_reconnect_cb.call } +# connection_factory.setClosedCallback { |_event| @on_close_cb.call } +# connection_factory.setExceptionHandler { |error| @on_error_cb.call(error) } + +# # Setup ssl context if we're using tls +# if options[:uses_tls] +# ssl_context = create_ssl_context(options) +# connection_factory.setSecure(true) +# connection_factory.setSSLContext(ssl_context) +# end + +# @connection = connection_factory.createConnection + +# # We're going to spawn a consumer and supervisor +# @work_queue = @connection.createMsgChannel +# spwan_supervisor_and_consumer + +# @connection +# end + +# def connection +# return @connection unless @connection.nil? +# # Ensure no consumer or supervisor are running +# close +# connect(options || {}) +# end + +# # Do not depend on #close for a graceful disconnect. +# def close +# @connection.close rescue nil +# @connection = nil +# @supervisor.kill rescue nil +# @supervisor = nil +# @consumer.kill rescue nil +# @supervisor = nil +# end + +# def flush(timeout_sec = 0.5) +# connection.flush(timeout_sec * 1000) +# end + +# def next_message(sub, timeout_sec) +# nats_message = sub.nextMessage(timeout_sec * 1000) +# return nil unless nats_message +# Message.new(nats_message) +# end + +# def publish(subject, data, mailbox = nil) +# # The "true" here is to force flush. May not need this. +# connection.publish(subject, mailbox, data.to_java_bytes, true) +# end + +# def subscribe(subject, options = {}, &block) +# queue = options[:queue] +# max = options[:max] +# work_queue = nil +# # We pass our work queue for processing async work because java nats +# # uses a cahced thread pool: 1 thread per async subscription. +# # Sync subs need their own queue so work is not processed async. +# work_queue = block.nil? ? connection.createMsgChannel : @work_queue +# sub = connection.subscribe(subject, queue, nil, work_queue) + +# # Register the block callback. We only lock to save the callback. +# if block +# @subz_mutex.synchronize do +# @subz_cbs[sub.getSid] = block +# end +# end + +# # Auto unsub if max message option was provided. +# sub.autoUnsubscribe(max) if max + +# sub +# end + +# def unsubscribe(sub) +# return if sub.nil? + +# # Cleanup our async callback +# if @subz_cbs[sub.getSid] +# @subz_mutex.synchronize do +# @subz_cbs.delete(sub.getSid) +# end +# end + +# # The "true" here is to ignore and invalid conn. +# sub.unsubscribe(true) +# end + +# def new_inbox +# "_INBOX.#{::SecureRandom.hex(13)}" +# end + +# def on_reconnect(&cb) +# @on_reconnect_cb = cb +# end + +# def on_disconnect(&cb) +# @on_disconnect_cb = cb +# end + +# def on_error(&cb) +# @on_error_cb = cb +# end + +# def on_close(&cb) +# @on_close_cb = cb +# end + +# private + +# def spwan_supervisor_and_consumer +# spawn_consumer +# @supervisor = ::Thread.new do +# loop do +# begin +# sleep 1 +# next if @consumer && @consumer.alive? +# # We need to recreate the consumer thread +# @consumer.kill if @consumer +# spawn_consumer +# rescue => error +# @on_error_cb.call(error) +# end +# end +# end +# end + +# def spawn_consumer +# @consumer = ::Thread.new do +# loop do +# begin +# message = @work_queue.take +# next unless message +# sub = message.getSubscription + +# # We have to update the subscription stats so we're not considered a slow consumer. +# begin +# sub.lock +# sub.incrPMsgs(-1) +# sub.incrPBytes(-message.getData.length) if message.getData +# sub.incrDelivered(1) unless sub.isClosed +# ensure +# sub.unlock +# end + +# # We don't need t +# callback = @subz_cbs[sub.getSid] +# next unless callback +# callback.call(message.getData.to_s, message.getReplyTo, message.getSubject) +# rescue => error +# @on_error_cb.call(error) +# end +# end +# end +# end + +# # Jruby-openssl depends on bouncycastle so our lives don't suck super bad +# def read_pem_object_from_file(path) +# fail ::ArgumentError, "Tried to read a PEM key or cert with path nil" if path.nil? + +# file_reader = java.io.FileReader.new(path) +# pem_parser = org.bouncycastle.openssl.PEMParser.new(file_reader) +# object = pem_parser.readObject +# pem_parser.close +# object +# end + +# def create_ssl_context(options) +# # Create our certs and key converters to go from bouncycastle to java. +# cert_converter = org.bouncycastle.cert.jcajce.JcaX509CertificateConverter.new +# key_converter = org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter.new + +# # Load the certs and keys. +# tls_ca_cert = cert_converter.getCertificate(read_pem_object_from_file(options[:tls_ca_cert])) +# tls_client_cert = cert_converter.getCertificate(read_pem_object_from_file(options[:tls_client_cert])) +# tls_client_key = key_converter.getKeyPair(read_pem_object_from_file(options[:tls_client_key])) + +# # Setup the CA cert. +# ca_key_store = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType) +# ca_key_store.load(nil, nil) +# ca_key_store.setCertificateEntry("ca-certificate", tls_ca_cert) +# trust_manager = javax.net.ssl.TrustManagerFactory.getInstance(javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm) +# trust_manager.init(ca_key_store) + +# # Setup the cert / key pair. +# client_key_store = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType) +# client_key_store.load(nil, nil) +# client_key_store.setCertificateEntry("certificate", tls_client_cert) +# certificate_java_array = [tls_client_cert].to_java(java.security.cert.Certificate) +# empty_password = [].to_java(:char) +# client_key_store.setKeyEntry("private-key", tls_client_key.getPrivate, empty_password, certificate_java_array) +# key_manager = javax.net.ssl.KeyManagerFactory.getInstance(javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm) +# key_manager.init(client_key_store, empty_password) + +# # Create ssl context. +# context = javax.net.ssl.SSLContext.getInstance("TLSv1.2") +# context.init(key_manager.getKeyManagers, trust_manager.getTrustManagers, nil) +# context +# end +# end +# end +# end diff --git a/lib/protobuf/nats/platform.rb b/lib/protobuf/nats/platform.rb index c606c32..865e298 100644 --- a/lib/protobuf/nats/platform.rb +++ b/lib/protobuf/nats/platform.rb @@ -1,14 +1,14 @@ module Protobuf module Nats - def self.jruby? - return false if jnats_disabled? + # def self.jruby? + # return false if jnats_disabled? - defined? JRUBY_VERSION - end + # defined? JRUBY_VERSION + # end - def self.jnats_disabled? - !!ENV["PB_NATS_DISABLE_JNATS"] - end + # def self.jnats_disabled? + # !!ENV["PB_NATS_DISABLE_JNATS"] + # end end end diff --git a/lib/protobuf/nats/server.rb b/lib/protobuf/nats/server.rb index 95f136b..e80eca4 100644 --- a/lib/protobuf/nats/server.rb +++ b/lib/protobuf/nats/server.rb @@ -24,32 +24,45 @@ def initialize(nats, &cb) end def queue_subscribe(name) - if ::Protobuf::Nats.jruby? - @subscriptions << @nats.subscribe(name, :queue => name) do |request_data, reply_id| - @callback.call(request_data, reply_id) - end - else - sub = @nats.subscribe(name, :queue => name) + sub = @nats.subscribe(name, :queue => name) - # Create a subscription but reset the pending queue to use a central pending queue. - # NOTE: This is a potential race condition. Chances of the round-trip message to an - # existing queue before this queue swap happens seems extremely low, but possible. - sub.pending_queue = @pending_queue + # Create a subscription but reset the pending queue to use a central pending queue. + # NOTE: This is a potential race condition. Chances of the round-trip message to an + # existing queue before this queue swap happens seems extremely low, but possible. + sub.pending_queue = @pending_queue - @subscriptions << sub + @subscriptions << sub - sub - end + sub + + # if ::Protobuf::Nats.jruby? + # @subscriptions << @nats.subscribe(name, :queue => name) do |request_data, reply_id| + # @callback.call(request_data, reply_id) + # end + # else + # sub = @nats.subscribe(name, :queue => name) + + # # Create a subscription but reset the pending queue to use a central pending queue. + # # NOTE: This is a potential race condition. Chances of the round-trip message to an + # # existing queue before this queue swap happens seems extremely low, but possible. + # sub.pending_queue = @pending_queue + + # @subscriptions << sub + + # sub + # end end def unsubscribe_all - if ::Protobuf::Nats.jruby? - @subscriptions.each do |subscription_id| - @nats.unsubscribe(subscription_id) - end - else - @subscriptions.each { |sub| sub.unsubscribe } - end + @subscriptions.each { |sub| sub.unsubscribe } + + # if ::Protobuf::Nats.jruby? + # @subscriptions.each do |subscription_id| + # @nats.unsubscribe(subscription_id) + # end + # else + # @subscriptions.each { |sub| sub.unsubscribe } + # end end end diff --git a/protobuf-nats.gemspec b/protobuf-nats.gemspec index 7f6b9b8..89051b5 100644 --- a/protobuf-nats.gemspec +++ b/protobuf-nats.gemspec @@ -43,4 +43,9 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rspec" spec.add_development_dependency "benchmark-ips" spec.add_development_dependency "pry" + + # if ENV["PLATFORM"] == "java" || ::RUBY_PLATFORM == "java" + # spec.platform = "java" + # spec.add_development_dependency "jruby-profiler-flame_graph_profile_printer" + # end end diff --git a/real_client.out b/real_client.out new file mode 100644 index 0000000..d99e32d --- /dev/null +++ b/real_client.out @@ -0,0 +1,947 @@ +Thread:main;(top) (1/1) 122698.380875 +Thread:main;(top) (1/1);Integer#times (1/1) 122698.380875 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29) 264.004742 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4) 255.897548 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7) 179.227164 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4) 119.20991 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Warehouse::Shipment#_protobuf_message_field (20000/4) 13.297671 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4) 57.028494 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4) 34.946935 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Kernel.kind_of? (20000/12) 2.476867 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Hash#[]= (20000/23) 3.259701 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (20000/4);Hash#[] (20000/42) 1.574786 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#to_hash (20000/4) 1.153939 +Thread:main;(top) (1/1);Integer#times (1/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Kernel.block_given? (20000/7) 1.123004 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1) 120667.874022 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Logging.logger (100000/7) 140.832755 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Logging.logger (100000/7);Protobuf::Logging.logger (100000/7) 62.922705 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Symbol#to_s (20000/1) 7.154116 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Symbol#to_sym (20000/2) 11.143425 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Array#[] (40000/8) 7.324853 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Kernel.kind_of? (20000/12) 2.152213 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#options (100000/1) 296.939845 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#options (100000/1);Protobuf::Rpc::Connectors::Base#options (100000/1) 10.343261 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Kernel.block_given? (20000/7) 0.959544 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::RpcMethod#response_type (20000/1) 7.275375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Logger#debug (100000/7) 220.786333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Logger#debug (100000/7);Logger#add (100000/8) 102.005701 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Logger#debug (100000/7);Logger#add (100000/8);NilClass#nil? (100000/13) 3.010826 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::RpcMethod#request_type (20000/1) 8.687384 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Hash#[]= (80000/23) 8.117127 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1) 119607.633288 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1) 119547.670686 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1) 103.782373 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1);Kernel.class (20000/5) 6.976169 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1);Protobuf::Nats::Client.subscription_pool_size (20000/1) 28.232592 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1);Protobuf::Nats::Client.subscription_pool_size (20000/1);Hash(singleton)#has_key? (1/3) 0.006042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1);Integer#> (20000/2) 6.658623 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats::Client#use_subscription_pooling? (20000/1);NilClass#nil? (20000/13) 0.602908 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1) 119358.637552 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1) 155.627719 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1) 109.47879 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Concurrent::Map#[] (20000/3) 64.787669 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Concurrent::Map#[] (20000/3);Concurrent::Collection::JRubyMapBackend#[] (20000/3) 19.10123 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3) 0.246875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3) 0.228251 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3);Concurrent::Collection::JRubyMapBackend#get_or_default (1/1) 0.0115 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3);Concurrent::Collection::JRubyMapBackend#[] (2/3) 0.001042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3);BasicObject#== (2/7) 0.000792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3);Proc#call (1/3) 0.204833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Map#[] (2/3);Proc#call (1/3);Concurrent::Collection::JRubyMapBackend#compute_if_absent (1/1) 0.199667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Array#select (1/1) 0.002375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Array#+ (1/1) 0.00175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1);Thread::Mutex#synchronize (1/3);Concurrent::Collection::JRubyMapBackend#[]= (1/1) 0.003833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications::Fanout#listening? (20000/1);Array#any? (20000/2) 3.997161 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);ActiveSupport::Notifications.notifier (20000/1) 1.822172 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1) 119073.971876 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2) 113815.147143 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Symbol#=== (40000/1) 5.421848 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#ack_timeout (20000/1) 67.211286 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#ack_timeout (20000/1);Hash(singleton)#has_key? (20000/3) 19.960512 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1) 108632.105519 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);NATS::Msg#data (60006/1) 7.351722 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1) 1087.019793 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);Class#new (20000/29) 85.843506 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);Class#new (20000/29);Protobuf::Nats::ResponseMuxerRequest#initialize (20000/1) 72.830748 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);String#split (20000/1) 27.937902 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);Array#last (20000/1) 2.249932 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);Protobuf::Nats.client_nats_connection (20000/4) 0.696289 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2) 441.167746 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2) 382.577429 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2);Integer#+ (20000/11) 3.612579 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2);Array#[] (200000/8) 10.361949 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2);Integer#% (200000/4) 16.323577 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2);Integer#>= (20000/6) 0.807951 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);NATS::Client#new_inbox (20000/2);NATS::NUID#next (20000/2);Integer#/ (180000/2) 28.208627 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18) 434.425071 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18) 428.308665 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9) 385.78946 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);MonitorMixin.new_cond (20000/3) 118.368179 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);MonitorMixin.new_cond (20000/3);Class#new (20000/29) 85.219891 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);MonitorMixin.new_cond (20000/3);Class#new (20000/29);MonitorMixin::ConditionVariable#initialize (20000/3) 76.124326 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);MonitorMixin.new_cond (20000/3);Class#new (20000/29);MonitorMixin::ConditionVariable#initialize (20000/3);Thread::ConditionVariable.new (20000/3) 23.063085 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);MonitorMixin.new_cond (20000/3);Class#new (20000/29);MonitorMixin::ConditionVariable#initialize (20000/3);Thread::ConditionVariable.new (20000/3);BasicObject#initialize (20000/8) 6.745984 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#[]= (20000/23) 2.263578 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#[] (20000/42) 202.005415 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#[] (20000/42);Hash#default (20000/16) 193.002541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#[] (20000/42);Hash#default (20000/16);Proc#call (20000/3) 185.371839 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxer#new_request (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#[] (20000/42);Hash#default (20000/16);Proc#call (20000/3);Hash#[]= (20000/23) 132.077035 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats.client_nats_connection (20000/4) 1.450274 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1) 160.228685 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1);Protobuf::Nats::ResponseMuxer#cleanup (20000/1) 120.789994 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1);Protobuf::Nats::ResponseMuxer#cleanup (20000/1);MonitorMixin.mon_synchronize (20000/18) 83.690695 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1);Protobuf::Nats::ResponseMuxer#cleanup (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18) 80.58191 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1);Protobuf::Nats::ResponseMuxer#cleanup (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9) 55.005651 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1);Protobuf::Nats::ResponseMuxer#cleanup (20000/1);MonitorMixin.mon_synchronize (20000/18);MonitorMixin.mon_synchronize (20000/18);Monitor#synchronize (20000/9);Hash#delete (20000/1) 24.391607 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1) 106487.871181 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1) 106413.947688 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2) 105983.203103 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);Float#- (40000/2) 19.878407 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);Float#> (40000/2) 17.84713 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);NATS::MonotonicTime.now (80000/2) 161.692513 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);NATS::MonotonicTime.now (80000/2);Process.clock_gettime (80000/2) 36.780611 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18) 105576.002758 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18) 105562.779081 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9) 105479.449669 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);MonitorMixin::ConditionVariable#wait (37884/2) 105199.756708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);MonitorMixin::ConditionVariable#wait (37884/2);Monitor#mon_check_owner (37884/2) 3.036595 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);MonitorMixin::ConditionVariable#wait (37884/2);Monitor#wait_for_cond (37884/2) 105093.486175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);MonitorMixin::ConditionVariable#wait (37884/2);Monitor#wait_for_cond (37884/2);Thread::ConditionVariable#wait (37884/2) 105069.798853 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);MonitorMixin::ConditionVariable#wait (37884/2);Monitor#wait_for_cond (37884/2);Thread::ConditionVariable#wait (37884/2);Thread::Mutex#sleep (37884/2) 105030.599998 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);Hash#has_key? (40000/6) 6.943076 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);BasicObject#! (20000/11) 3.900448 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);Hash#[] (155768/42) 22.466462 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);NATS::MonotonicTime.with_nats_timeout (40000/2);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);Array#empty? (20000/2) 3.348545 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);MonitorMixin.mon_synchronize (40000/18) 283.027514 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18) 273.095763 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9) 187.157563 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);Array#shift (40000/2) 26.337 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1);Protobuf::Nats::ResponseMuxer#next_message (40000/1);MonitorMixin.mon_synchronize (40000/18);MonitorMixin.mon_synchronize (40000/18);Monitor#synchronize (40000/9);Hash#[] (80000/42) 23.87628 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Hash#[] (40000/42) 1.96312 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);String#== (40006/4) 17.11281 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1) 591.226839 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1) 559.778662 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1) 495.161624 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2) 181.535875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);Integer#+ (20000/11) 0.740949 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);Numeric#! (20000/4) 4.858169 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);String#bytesize (20000/7) 1.245317 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#closed? (20000/2) 28.093868 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#closed? (20000/2);Integer#== (20000/10) 2.122406 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);Thread::SizedQueue#push (20000/5) 20.813239 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#disconnected? (20000/2) 24.217117 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#disconnected? (20000/2);Numeric#! (20000/4) 0.607881 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#disconnected? (20000/2);Integer#== (20000/10) 0.641272 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);NATS::Client#send_command (20000/2);NATS::Client#status (20000/2) 1.197562 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Integer#+ (40000/11) 2.372023 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);String#bytesize (20000/7) 1.328764 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);String#empty? (20000/3) 1.332162 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Thread::SizedQueue#push (20000/5) 123.110137 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);BasicObject#! (20000/11) 1.615966 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Hash#[]= (40000/23) 4.637827 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Hash#[] (60000/42) 8.364411 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Hash#[] (60000/42);Hash#default (20000/16) 0.754291 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);NATS::Client#publish (20000/1);Thread::Queue#empty? (20000/1) 4.525979 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#nats_request_with_two_responses (20000/1);Protobuf::Nats::ResponseMuxerRequest#publish (20000/1);Protobuf::Nats::ResponseMuxer#publish (20000/1);Protobuf::Nats.client_nats_connection (20000/4) 1.227304 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1) 4604.415867 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Stat#request_size= (20000/1) 7.85257 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1) 4111.8985 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1) 3843.806513 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29) 1513.438345 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4) 1506.037509 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7) 1433.653407 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4) 1340.688128 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4) 1142.466076 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2) 762.374101 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2) 711.289032 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Module#=== (80000/11) 36.506515 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1) 622.258479 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Kernel.dup (20000/10) 91.461889 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Kernel.dup (20000/10);Kernel.initialize_dup (20000/6) 32.04176 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Kernel.dup (20000/10);Kernel.initialize_dup (20000/6);Kernel.initialize_copy (20000/1) 13.237437 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1) 499.491457 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7) 333.768729 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1) 148.475575 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4) 113.143631 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Warehouse::Shipment#_protobuf_message_field (20000/4) 11.362497 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4) 57.643798 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4) 35.459095 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Kernel.kind_of? (20000/12) 0.996619 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Protobuf::Field::BaseField#set_field (20000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Hash#[]= (20000/23) 6.407155 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Protobuf::Message#[]= (20000/1);Protobuf::Message#set_field (20000/4);Hash#[] (20000/42) 1.237242 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Kernel.kind_of? (20000/12) 16.509817 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Proc#call (20000/3) 91.883563 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Proc#call (20000/3);Module#=== (40000/11) 7.681369 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Proc#call (20000/3);BasicObject#__send__ (20000/3) 19.458329 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Hash#each (20000/7);Proc#call (20000/3);BasicObject#__send__ (20000/3);Kernel.dup (20000/10) 7.838219 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);Kernel.proc (20000/3) 14.729805 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);BasicObject#__send__ (20000/3) 78.166394 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);BasicObject#__send__ (20000/3);Protobuf::Message#initialize (20000/4) 57.502019 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);BasicObject#__send__ (20000/3);Protobuf::Message#initialize (20000/4);Hash#each (20000/7) 2.020453 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);BasicObject#__send__ (20000/3);Protobuf::Message#initialize (20000/4);Hash#to_hash (20000/4) 0.690697 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Protobuf::Message#dup (20000/1);Protobuf::Message#copy_to (20000/1);BasicObject#__send__ (20000/3);Protobuf::Message#initialize (20000/4);Kernel.block_given? (20000/7) 1.489485 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Kernel.nil? (20000/8) 1.110598 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Hash#[]= (20000/23) 1.68804 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4) 34.605467 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Kernel.kind_of? (20000/12) 0.796018 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (20000/4);Hash#[]= (20000/23) 2.006893 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1) 245.584739 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1);Kernel.kind_of? (40000/12) 3.639237 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1);Array#delete (40000/1) 29.00601 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1);Protobuf::Socketrpc::Request#_protobuf_message_unset_required_field_tags (40000/2) 79.257633 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1);Protobuf::Socketrpc::Request#_protobuf_message_unset_required_field_tags (40000/2);Kernel.dup (20000/10) 12.222976 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Field::BaseField#set_field (80000/4);Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1);Hash#[]= (40000/23) 4.832793 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Protobuf::Socketrpc::Request#_protobuf_message_field (80000/2) 43.448986 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#each (20000/7);Protobuf::Message#set_field (80000/4);Hash#[] (80000/42) 7.157061 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Hash#to_hash (20000/4) 1.171147 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Class#new (20000/29);Protobuf::Message#initialize (20000/4);Kernel.block_given? (20000/7) 0.780879 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2) 2297.265462 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO#set_encoding (20000/2) 25.768323 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO#string (20000/2) 1.161496 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2) 2166.468663 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2) 2136.740166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2) 2093.062962 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2) 1985.368376 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (80000/2) 191.059454 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValuesForSerialization#call (80000/2) 88.305382 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValuesForSerialization#call (80000/2);Hash#[] (80000/42) 5.967195 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2) 1498.565772 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2) 658.837116 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);IO::GenericWritable.<< (180000/3) 91.007755 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);IO::GenericWritable.<< (180000/3);StringIO#write (180000/3) 51.988742 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3) 281.772268 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6) 226.074101 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3) 110.610407 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Kernel.dup (60000/10) 10.934087 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Protobuf::VarintPure.encode (2/6) 0.018001 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Protobuf::VarintPure.encode (2/6);Array#pack (2/3) 0.012208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Protobuf::VarintPure.encode (2/6);Array#<< (2/6) 0.001209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Protobuf::VarintPure.encode (2/6);Integer#< (2/4) 0.000584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Hash#[]= (2/23) 0.00075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Hash#[] (60000/42) 10.779473 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Protobuf::VarintPure.cached_varint (60000/3);Hash#[] (60000/42);Hash#default (2/16) 0.000458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Integer#>= (60000/6) 5.15687 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);Protobuf::Field::VarintField.encode (60000/3);Protobuf::VarintPure.encode (60000/6);Integer#<= (60000/3) 8.691114 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);String#bytesize (60000/7) 4.031334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);BasicObject#!= (60000/2) 42.720633 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);BasicObject#!= (60000/2);BasicObject#== (60000/7) 9.510373 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);String#encoding (60000/2) 11.076099 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2);String#+ (60000/2) 30.021226 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1) 727.962192 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);IO::GenericWritable.<< (60000/3) 16.700036 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);IO::GenericWritable.<< (60000/3);StringIO#write (60000/3) 9.981097 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3) 75.575069 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6) 61.372907 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3) 29.870122 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Kernel.dup (20000/10) 1.393633 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6) 0.003209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Array#pack (1/3) 0.002 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Array#<< (1/6) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Integer#< (1/4) 4.1e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[]= (1/23) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[] (20000/42) 1.524843 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[] (20000/42);Hash#default (1/16) 4.1e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Integer#>= (20000/6) 0.685149 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Integer#<= (20000/3) 0.668746 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);String#bytesize (20000/7) 0.730282 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Kernel.kind_of? (20000/12) 2.787483 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2) 558.50624 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO#set_encoding (20000/2) 5.353133 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO#string (20000/2) 5.602524 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2) 478.668801 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2) 460.954533 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2) 425.263834 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Warehouse::Shipment#_protobuf_message_unset_required_field_tags (20000/1) 49.709368 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Warehouse::Shipment#_protobuf_message_unset_required_field_tags (20000/1);Kernel.dup (20000/10) 3.172581 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2) 332.948058 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Warehouse::Shipment#_protobuf_message_field (20000/4) 10.580293 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (20000/2) 41.752405 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValuesForSerialization#call (20000/2) 22.726131 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#value_from_values_for_serialization (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValuesForSerialization#call (20000/2);Hash#[] (20000/42) 1.098793 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2) 214.644331 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2) 189.997273 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);IO::GenericWritable.<< (60000/3) 22.853986 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);IO::GenericWritable.<< (60000/3);StringIO#write (60000/3) 14.456257 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3) 82.740909 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6) 65.580358 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3) 33.558662 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Kernel.dup (20000/10) 1.603019 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6) 0.004459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Array#pack (1/3) 0.002834 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Array#<< (1/6) 0.000292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Protobuf::VarintPure.encode (1/6);Integer#< (1/4) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[]= (1/23) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[] (20000/42) 2.113985 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Protobuf::VarintPure.cached_varint (20000/3);Hash#[] (20000/42);Hash#default (1/16) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Integer#>= (20000/6) 0.851323 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);Protobuf::Field::VarintField.encode (20000/3);Protobuf::VarintPure.encode (20000/6);Integer#<= (20000/3) 0.7668 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);String#bytesize (20000/7) 1.131143 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);BasicObject#!= (20000/2) 3.772595 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);BasicObject#!= (20000/2);BasicObject#== (20000/7) 0.783156 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);String#encoding (20000/2) 1.023965 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2);String#+ (20000/2) 10.253566 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Hash#[] (20000/42) 1.0953 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Array#each (20000/6) 0.953505 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO.new (20000/3) 22.665416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Field::BaseField#encode_to_stream (80000/2);Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO.new (20000/3);StringIO#initialize (20000/3) 16.787969 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Protobuf::Socketrpc::Request#_protobuf_message_field (80000/2) 40.671263 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Hash#each_key (20000/2);Hash#[] (80000/42) 6.134619 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Array#each (20000/6) 8.771847 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);Protobuf::Message::Serialization.encode_to (20000/2);Protobuf::Encoder.encode (20000/2);Protobuf::Message#each_field_for_serialization (20000/2);Protobuf::Socketrpc::Request#_protobuf_message_unset_required_field_tags (20000/2) 39.8801 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO.new (20000/3) 47.862342 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Message::Serialization::ClassMethods.encode (20000/1);Protobuf::Message::Serialization.encode (20000/2);StringIO.new (20000/3);StringIO#initialize (20000/3) 35.393381 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#validate_request_type! (20000/1) 55.894062 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#validate_request_type! (20000/1);Kernel.class (20000/5) 0.999953 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#validate_request_type! (20000/1);Hash#[] (40000/42) 1.825868 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#validate_request_type! (20000/1);Module#== (20000/1) 9.485366 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1) 135.544665 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Module#name (20000/3) 0.646655 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Protobuf::Rpc::Connectors::Base#request_caller (20000/1) 78.577692 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Protobuf::Rpc::Connectors::Base#request_caller (20000/1);Protobuf.client_host (20000/1) 49.464903 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Protobuf::Rpc::Connectors::Base#request_caller (20000/1);Protobuf.client_host (20000/1);Socket.gethostname (1/1) 17.660458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Protobuf::Rpc::Connectors::Base#request_caller (20000/1);Hash#[] (20000/42) 0.750472 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);Hash#[] (60000/42) 2.63757 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#request_bytes (20000/1);Protobuf::Rpc::Connectors::Base#request_fields (20000/1);String#to_s (20000/7) 0.597594 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1) 418.058605 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Class#new (20000/29) 150.363597 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2) 143.164234 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2) 111.54949 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2);Time.now (20000/3) 81.035038 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2);Time.now (20000/3);Time#initialize (20000/3) 73.031938 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Module#name (20000/3) 4.879756 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Protobuf::Rpc::Stat#server= (20000/2) 104.998601 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Protobuf::Rpc::Stat#server= (20000/2);Module#=== (20000/11) 2.367302 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Protobuf::Rpc::Stat#server= (20000/2);Array#[] (40000/8) 7.809466 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Protobuf::Rpc::Stat#method_name= (20000/1) 7.842323 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Protobuf::Rpc::Stat#service= (20000/1) 10.114166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);Hash#[] (80000/42) 4.264956 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1);String#to_s (20000/7) 1.616534 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Rpc::Connectors::Base#setup_connection (20000/1);String#length (20000/5) 1.491647 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1) 80.799978 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Kernel.class (20000/5) 1.098282 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats::Client.subscription_key_cache (20000/1) 20.803381 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Hash#[]= (2/23) 0.010917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Hash#[] (80000/42) 11.32246 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Hash#[] (80000/42);Hash#default (2/16) 4.2e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1) 0.2855 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);Protobuf::Nats.config (1/2) 0.002041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);Module#name (1/3) 0.001292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1) 0.213917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1) 0.205542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);Kernel.dup (1/10) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector::Inflections#acronyms_underscore_regex (1/1) 0.000916 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);String#tr! (1/1) 0.051875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);Regexp#match? (2/1) 0.008667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);String#downcase! (1/1) 0.0035 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1) 0.108084 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);Kernel.block_given? (1/7) 4.2e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1) 0.102042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);Array#each (1/6) 0.054292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);Array#each (1/6);Concurrent::Collection::JRubyMapBackend#key? (1/1) 0.004416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);Array#each (1/6);Concurrent::Map#[] (1/3) 0.003792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);Array#each (1/6);Concurrent::Map#[] (1/3);Concurrent::Collection::JRubyMapBackend#[] (1/3) 0.001667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n::Locale::Fallbacks#[] (1/1) 0.009209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n::Locale::Fallbacks#[] (1/1);Symbol#to_sym (1/2) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n::Locale::Fallbacks#[] (1/1);Kernel.nil? (1/8) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n::Locale::Fallbacks#[] (1/1);Hash#[] (1/42) 0.000292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n::Locale::Fallbacks#[] (1/1);Symbol#== (1/1) 0.000416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n.fallbacks (1/1) 0.026417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n.fallbacks (1/1);Thread.current (1/1) 0.0015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);ActiveSupport::Inflector.inflections (1/1);ActiveSupport::Inflector::Inflections.instance_or_fallback (1/1);I18n.fallbacks (1/1);Thread#[] (1/1) 0.002333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);String#gsub (1/2) 0.007541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);String#gsub! (2/2) 0.0115 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#underscore (2/1);ActiveSupport::Inflector.underscore (2/1);String#to_s (2/7) 0.000291 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);Protobuf::Nats::Config#make_subscription_key_replacements (1/1) 0.035 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);Protobuf::Nats::Config#make_subscription_key_replacements (1/1);Protobuf::Nats::Config#subscription_key_replacements (1/1) 0.0005 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);Protobuf::Nats::Config#make_subscription_key_replacements (1/1);Array#each (1/6) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#gsub (1/2) 0.0095 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#cached_subscription_key (20000/1);Protobuf::Nats.subscription_key (1/1);String#to_s (1/7) 4.1e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#response_timeout (20000/1) 130.750984 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Kernel.loop (20000/2);Protobuf::Nats::Client#response_timeout (20000/1);Hash(singleton)#has_key? (20000/3) 67.234627 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1) 5109.782494 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Logging.logger (40000/7) 118.962205 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Logging.logger (40000/7);Protobuf::Logging.logger (40000/7) 74.028648 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1) 287.845675 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Protobuf::Logging.logger (20000/7) 32.712428 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Protobuf::Logging.logger (20000/7);Protobuf::Logging.logger (20000/7) 16.574579 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Protobuf::Rpc::Connectors::Base#any_callbacks? (20000/1) 74.843089 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Protobuf::Rpc::Connectors::Base#any_callbacks? (20000/1);Array#any? (20000/2) 18.256586 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Kernel.method (20000/1) 45.476989 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Logger#debug (20000/7) 56.337448 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Logger#debug (20000/7);Logger#add (20000/8) 24.448261 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1);Logger#debug (20000/7);Logger#add (20000/8);NilClass#nil? (20000/13) 0.87073 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1) 2534.237806 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Class#new (40000/29) 263.938883 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Class#new (40000/29);Protobuf::Message#initialize (40000/4) 226.43199 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Class#new (40000/29);Protobuf::Message#initialize (40000/4);Hash#each (40000/7) 16.898563 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Class#new (40000/29);Protobuf::Message#initialize (40000/4);Hash#to_hash (40000/4) 7.558786 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Class#new (40000/29);Protobuf::Message#initialize (40000/4);Kernel.block_given? (40000/7) 11.490998 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1) 2178.347665 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1) 1945.866732 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1) 1870.152789 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Integer#& (60000/3) 2.536618 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Integer#>> (60000/1) 14.49505 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1) 409.943614 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Integer#+ (120000/11) 7.544369 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);IO::GenericReadable.readbyte (120000/1) 54.361626 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);IO::GenericReadable.readbyte (120000/1);StringIO#getbyte (120000/1) 18.858755 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Integer#| (120000/2) 12.95648 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Integer#* (120000/1) 12.185978 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Integer#& (240000/3) 18.033259 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Numeric#nonzero? (120000/1) 10.519726 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::VarintPure.decode (120000/1);Integer#<< (120000/1) 15.496069 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Integer#== (120000/10) 6.173093 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);StringIO#read (60000/1) 34.63391 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1) 1037.46595 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Warehouse::Shipment#_protobuf_message_field (20000/4) 18.147034 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1) 802.774923 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1) 707.298277 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4) 452.464314 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4) 328.874817 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2) 136.117269 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2) 48.689571 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);Module#=== (20000/11) 7.612051 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Protobuf::Field::BytesField#coerce! (20000/2);String#to_s (20000/7) 5.201397 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Kernel.nil? (20000/8) 4.688328 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2);Hash#[]= (20000/23) 9.545755 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (40000/4) 98.223585 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (40000/4);Kernel.kind_of? (40000/12) 7.142141 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Message#set_field (60000/4);Protobuf::Field::BaseField#set_field (60000/4);Protobuf::Field::BaseFieldObjectDefinitions::StringSetField#call (40000/4);Hash#[]= (40000/23) 5.909833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Field::BytesField#decode (20000/1) 52.514577 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Field::BytesField#decode (20000/1);String#force_encoding (20000/2) 17.25339 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Field::StringField#decode (40000/1) 61.060807 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Field::BaseField#set (60000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1);Protobuf::Field::StringField#decode (40000/1);String#force_encoding (40000/2) 7.033779 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Protobuf::Socketrpc::Response#_protobuf_message_field (40000/4) 71.340058 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);Protobuf::Message::Serialization.set_field_bytes (60000/1);Hash#[] (60000/42) 14.888395 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);Protobuf::Message::Serialization.decode_from (40000/1);Protobuf::Decoder.decode_each_field (40000/1);StringIO#eof (100000/1) 11.623462 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);StringIO.new (40000/3) 162.742633 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message::Serialization::ClassMethods.decode (40000/1);Protobuf::Message::Serialization.decode (40000/1);StringIO.new (40000/3);StringIO#initialize (40000/3) 132.287977 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Nats::Client#close_connection (20000/1) 17.182867 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1) 127.552002 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2) 105.796908 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2) 42.456624 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValues#call (20000/2) 17.661646 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValues#call (20000/2);Hash#[] (20000/42) 1.176454 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Socketrpc::Response#_protobuf_message_field (20000/4) 9.500503 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#response_proto (20000/1);Protobuf::Message#[] (20000/2);Hash#[] (20000/42) 1.219518 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1) 222.987315 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2) 155.186344 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2) 65.487466 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValues#call (20000/2) 29.655531 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Field::BaseField#value_from_values (20000/2);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldValueFromValues#call (20000/2);Hash#[] (20000/42) 0.957907 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2);Protobuf::Socketrpc::Response#_protobuf_message_field (20000/4) 8.641305 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Socketrpc::Response#server (20000/1);Protobuf::Message#[] (20000/2);Hash#[] (20000/42) 1.11488 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1) 1031.966087 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1) 699.730509 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Protobuf::Logging.logger (40000/7) 53.326748 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Protobuf::Logging.logger (40000/7);Protobuf::Logging.logger (40000/7) 26.228595 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Protobuf::Rpc::Stat#stop (20000/1) 453.678648 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Protobuf::Rpc::Stat#stop (20000/1);Time.now (20000/3) 371.876632 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Protobuf::Rpc::Stat#stop (20000/1);Time.now (20000/3);Time#initialize (20000/3) 338.758024 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);NilClass#nil? (20000/13) 0.553127 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#info (20000/1) 59.620255 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#info (20000/1);Logger#add (20000/8) 21.340497 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#info (20000/1);Logger#add (20000/8);NilClass#nil? (20000/13) 0.851277 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#debug (20000/7) 40.149449 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#debug (20000/7);Logger#add (20000/8) 18.998948 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Rpc::Connectors::Base#complete (20000/1);Logger#debug (20000/7);Logger#add (20000/8);NilClass#nil? (20000/13) 0.670909 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Logging.logger (20000/7) 28.845687 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Protobuf::Logging.logger (20000/7);Protobuf::Logging.logger (20000/7) 13.721228 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1) 145.679869 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1) 134.437776 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1);Protobuf::Logging.logger (20000/7) 27.145096 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1);Protobuf::Logging.logger (20000/7);Protobuf::Logging.logger (20000/7) 13.051393 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1);Logger#debug (20000/7) 41.926451 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1);Logger#debug (20000/7);Logger#add (20000/8) 19.252316 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Method#call (20000/1);Protobuf::Rpc::Connectors::Base#data_callback (20000/1);Logger#debug (20000/7);Logger#add (20000/8);NilClass#nil? (20000/13) 0.641285 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Kernel.nil? (20000/8) 1.451635 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Logger#debug (20000/7) 44.070012 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Logger#debug (20000/7);Logger#add (20000/8) 19.758649 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Connectors::Base#succeed (20000/1);Logger#debug (20000/7);Logger#add (20000/8);NilClass#nil? (20000/13) 0.697295 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Kernel.nil? (40000/8) 3.525051 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Stat#server= (20000/2) 54.511328 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Stat#server= (20000/2);Module#=== (40000/11) 5.388589 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Logger#debug (40000/7) 176.90623 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Logger#debug (40000/7);Logger#add (40000/8) 89.792213 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Logger#debug (40000/7);Logger#add (40000/8);NilClass#nil? (40000/13) 7.403995 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1) 217.243998 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1);Protobuf::Socketrpc::Response#_protobuf_message_field (40000/4) 17.177864 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1);Protobuf::Field::BaseField#field? (40000/1) 122.061113 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1);Protobuf::Field::BaseField#field? (40000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldPredicate#call (40000/1) 57.171211 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1);Protobuf::Field::BaseField#field? (40000/1);Protobuf::Field::BaseFieldObjectDefinitions::BaseFieldPredicate#call (40000/1);Hash#has_key? (40000/6) 5.695493 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Message#field? (40000/1);Hash#[] (40000/42) 8.547519 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Hash#[] (20000/42) 2.930176 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);Protobuf::Rpc::Stat#response_size= (20000/1) 12.150326 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);String#to_s (20000/7) 0.68614 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Protobuf::Nats::Client#send_request_through_nats (20000/1);Protobuf::Rpc::Connectors::Base#parse_response (20000/1);String#length (20000/5) 1.51607 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);ActiveSupport::Notifications.instrument (20000/1);Kernel.block_given? (20000/7) 0.863461 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Client#send_request (20000/1);Protobuf::Nats::Client#send_request (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2) 18.216743 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Service.rpc_method? (20000/1) 61.317349 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Service.rpc_method? (20000/1);Hash#has_key? (20000/6) 6.443602 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Service.rpc_method? (20000/1);Protobuf::Rpc::Service.rpcs (20000/2) 27.490281 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Hash#[] (40000/42) 4.297795 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Client#method_missing (20000/1);Protobuf::Rpc::Service.rpcs (20000/2) 13.849329 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1) 595.157579 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Array#[]= (40000/1) 17.071642 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);String#% (20000/1) 98.26555 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Integer#| (40000/2) 2.871379 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Integer#& (40000/3) 2.722874 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Array#[] (40000/8) 9.358197 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);String#unpack (20000/1) 70.292282 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3) 309.500076 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);SecureRandom.gen_random_urandom (20000/6) 263.507488 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);SecureRandom.gen_random_urandom (20000/6);SecureRandom.gen_random_urandom (20000/6) 257.182979 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);SecureRandom.gen_random_urandom (20000/6);SecureRandom.gen_random_urandom (20000/6);Random.urandom (20000/3) 198.46143 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);SecureRandom.gen_random_urandom (20000/6);SecureRandom.gen_random_urandom (20000/6);Integer#== (20000/10) 1.376003 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);SecureRandom.gen_random_urandom (20000/6);SecureRandom.gen_random_urandom (20000/6);String#length (20000/5) 2.17681 +Thread:main;(top) (1/1);Integer#times (1/1);Random::Formatter.uuid (20000/1);Random::Formatter.random_bytes (20000/3);Integer#to_i (20000/4) 5.766169 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1) 1038.35666 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29) 785.637088 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1) 773.32732 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Protobuf::Logging.logger (20000/7) 29.699276 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Protobuf::Logging.logger (20000/7);Protobuf::Logging.logger (20000/7) 15.983518 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29) 571.477619 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1) 557.935431 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1) 354.832088 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Class#new (20000/29) 208.012242 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2) 196.307994 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2) 141.931838 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2);Time.now (20000/3) 101.752391 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Class#new (20000/29);Protobuf::Rpc::Stat#initialize (20000/2);Protobuf::Rpc::Stat#start (20000/2);Time.now (20000/3);Time#initialize (20000/3) 94.070672 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Hash#merge (20000/3) 78.33648 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Hash#merge (20000/3);Kernel.initialize_dup (20000/6) 23.107968 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Rpc::Connectors::Base#initialize (20000/1);Hash#merge (20000/3);Kernel.initialize_dup (20000/6);Hash#initialize_copy (20000/4) 7.180224 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1) 64.993785 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Protobuf::Nats::ResponseMuxer#started? (20000/2) 39.504223 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Protobuf::Nats::ResponseMuxer#started? (20000/2);BasicObject#! (40000/11) 5.028925 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3) 0.810625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1) 0.677958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#callback= (1/1) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NilClass#to_s (1/1) 0.0015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#subject= (1/1) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#draining? (1/1) 0.014417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#draining? (1/1);Integer#== (2/10) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#draining? (1/1);MonitorMixin.mon_synchronize (1/18) 0.007458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#draining? (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18) 0.006958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#draining? (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9) 0.005125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Thread::SizedQueue#push (1/5) 0.008917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Hash#has_key? (1/6) 0.001083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#pending_bytes_limit= (1/1) 0.000209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Class#new (1/29) 0.007208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Class#new (1/29);Thread::SizedQueue#initialize (1/2) 0.002542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#pending_msgs_limit= (1/1) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#pending_msgs_limit (1/1) 0.0015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#wait_for_msgs_cond= (1/1) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.new_cond (1/3) 0.009 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29) 0.006375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3) 0.00575 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3);Thread::ConditionVariable.new (1/3) 0.003625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3);Thread::ConditionVariable.new (1/3);BasicObject#initialize (1/8) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Hash#[]= (2/23) 0.000459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2) 0.022458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);Integer#+ (1/11) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);Numeric#! (1/4) 0.000584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);String#bytesize (1/7) 0.001125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#closed? (1/2) 0.002375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#closed? (1/2);Integer#== (1/10) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);Thread::SizedQueue#push (1/5) 0.005291 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#disconnected? (1/2) 0.002125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#disconnected? (1/2);Numeric#! (1/4) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#disconnected? (1/2);Integer#== (1/10) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Client#send_command (1/2);NATS::Client#status (1/2) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#pending_queue= (1/1) 0.000292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Hash#[] (8/42) 0.002334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);Hash#[] (8/42);Hash#default (6/16) 0.000501 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18) 0.575541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18) 0.575375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9) 0.57425 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29) 0.544583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1) 0.084958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2) 0.031209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2);BasicObject#initialize (1/8) 0.000667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3) 0.019875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Class#new (1/29) 0.003584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Class#new (1/29);BasicObject#initialize (1/8) 0.000667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Kernel.object_id (1/3) 0.006417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Class#new (1/29);NATS::Subscription#initialize (1/1);Hash#fetch (1/5) 0.002625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Integer#+ (1/11) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::Subscription#sid= (1/1) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Hash#[]= (1/23) 0.013792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::Subscription#nc= (1/1) 0.00075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#subscribe (1/1);NATS::Subscription#received= (1/1) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);Protobuf::Nats::ResponseMuxer#started? (1/2) 0.000833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);Protobuf::Nats::ResponseMuxer#started? (1/2);BasicObject#! (2/11) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);Kernel.nil? (1/8) 0.000541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);Protobuf::Nats.client_nats_connection (1/4) 0.000583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2) 0.113459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2) 0.10825 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2);Integer#+ (1/11) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2);Array#[] (10/8) 0.001167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2);Integer#% (10/4) 0.004043 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2);Integer#>= (1/6) 0.001042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread::Mutex#synchronize (1/3);NATS::Client#new_inbox (1/2);NATS::NUID#next (1/2);Integer#/ (9/2) 0.002083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread.new (1/2) 0.151208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats::ResponseMuxer#start (20000/1);Thread.new (1/2);Thread#initialize (1/2) 0.142667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2) 76.243227 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3) 43.65175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#on_close (1/1) 0.001375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29) 1.38175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1) 0.803667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.class (1/5) 0.000417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29) 0.419833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2) 0.239875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);Class#new (1/29) 0.104416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);Class#new (1/29);Base#initialize (1/2) 0.10125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);Integer#+ (1/11) 0.000542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);Base#rand (2/2) 0.031042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2) 0.092 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Kernel.dup (1/10) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);String#each_byte (1/4) 0.01275 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3) 0.022583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6) 0.017292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6) 0.016834 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);Random.urandom (1/3) 0.013 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);Integer#== (1/10) 0.000541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);String#length (1/5) 0.000459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);Integer#to_i (1/4) 0.000875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2) 0.047708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2) 0.041792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4) 0.036708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);Array#[] (12/8) 0.001251 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);Integer#% (12/4) 0.004124 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);String#<< (12/2) 0.004458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::Protocol::Parser#initialize (1/1) 0.025875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Class#new (2/29);NATS::Protocol::Parser#initialize (1/1);NATS::Protocol::Parser#reset! (1/1) 0.013125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.proc (4/3) 0.003666 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1) 0.06875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);Module#extended (1/1) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1) 0.06175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);Module#extend_object (1/1) 0.030875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);BasicObject#__send__ (1/3) 0.026167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);BasicObject#__send__ (1/3);MonitorMixin.mon_initialize (1/3) 0.02175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);BasicObject#__send__ (1/3);MonitorMixin.mon_initialize (1/3);Class#new (1/29) 0.001458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);BasicObject#__send__ (1/3);MonitorMixin.mon_initialize (1/3);Class#new (1/29);BasicObject#initialize (1/8) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Kernel.extend (1/1);MonitorMixin.extend_object (1/1);BasicObject#__send__ (1/3);MonitorMixin.mon_initialize (1/3);Kernel.object_id (1/3) 0.002459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Hash#any? (1/1) 0.001208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2) 0.086417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2);BasicObject#initialize (1/8) 0.000958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3) 0.022 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Class#new (1/29) 0.003958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Class#new (1/29);BasicObject#initialize (1/8) 0.000584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);MonitorMixin.initialize (1/2);MonitorMixin.mon_initialize (1/3);Kernel.object_id (1/3) 0.007667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);Hash#fetch (1/5) 0.002458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);ObjectSpace::WeakMap#[]= (1/1) 0.042584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);BasicObject#! (1/11) 0.00075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);NATS::Client.default_reloader (1/1) 0.084708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);NATS::Client.default_reloader (1/1);Kernel.proc (1/3) 0.000958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);NATS::Client.default_reloader (1/1);Kernel.tap (1/1) 0.010709 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Class#new (1/29);NATS::Client#initialize (1/1);NATS::Client.default_reloader (1/1);Kernel.tap (1/1);Proc#lambda? (1/1) 0.002125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#on_reconnect (1/1) 0.001792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Protobuf::Nats.config (1/2) 0.002958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#on_disconnect (1/1) 0.004042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#on_error (1/1) 0.001542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1) 39.091 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1) 37.889292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Class#new (2/29) 0.419042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Class#new (2/29);Thread::SizedQueue#initialize (2/2) 0.024625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1) 7.075666 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29) 5.896708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1) 5.889917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1) 5.867875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::Object#initialize (1/1) 0.008583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::Object#initialize (1/1);Concurrent::Synchronization::Object#__initialize_atomic_fields__ (1/1) 0.000667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::Object#initialize (1/1);Concurrent::Synchronization::AbstractObject#initialize (1/1) 0.001291 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1) 5.817708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1) 5.8015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29) 2.501708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1) 0.670417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1);Java::JavaUtilConcurrent::Executors.defaultThreadFactory (1/1) 0.144083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1);java.util.concurrent (1/2) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1);Java::JavaPackage#method_missing (1/2) 0.490125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1);java.util (1/2) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Class#new (1/29);Concurrent::DaemonThreadFactory#initialize (1/1);Kernel.java (1/2) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);java.util.concurrent.ThreadPoolExecutor (1/1) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1) 1.710165 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1);Class#new (3/29) 1.692583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1);Class#new (3/29);ConcreteJavaProxy#initialize (3/1) 1.684791 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1);Class#new (3/29);ConcreteJavaProxy#initialize (3/1);Java::JavaUtilConcurrent::ThreadPoolExecutor::AbortPolicy#__jcreate! (1/1) 0.009667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1);Class#new (3/29);ConcreteJavaProxy#initialize (3/1);Java::JavaUtilConcurrent::LinkedBlockingQueue#__jcreate! (1/1) 0.662375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);ConcreteJavaProxy.new (3/1);Class#new (3/29);ConcreteJavaProxy#initialize (3/1);Java::JavaUtilConcurrent::ThreadPoolExecutor#__jcreate! (1/1) 1.006042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);java.util.concurrent (3/2) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Java::JavaPackage#method_missing (2/2) 1.434625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Java::JavaPackage#method_missing (2/2);Kernel.initialize_dup (2/6) 0.049459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Java::JavaPackage#method_missing (2/2);Kernel.initialize_dup (2/6);Module#initialize_copy (2/1) 0.038999 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);java.util (3/2) 0.000626 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Concurrent::AbstractExecutorService#ns_auto_terminate? (1/1) 0.01625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Hash#has_key? (1/6) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Integer#== (1/10) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Integer#> (2/2) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Integer#< (2/4) 0.000376 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Hash#fetch (6/5) 0.001707 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Kernel.java (3/2) 0.001167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Integer#to_i (4/4) 0.001208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Concurrent::JavaThreadPoolExecutor#ns_initialize (1/1);Hash#[] (1/42) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Hash#has_key? (1/6) 0.0015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Class#new (1/29);Concurrent::JavaThreadPoolExecutor#initialize (1/1);Concurrent::AbstractExecutorService#initialize (1/1);Concurrent::Synchronization::JRubyLockableObject#synchronize (1/1);Hash#fetch (2/5) 0.002542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Thread#name= (3/1) 0.102667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Thread#abort_on_exception= (3/1) 0.01125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Thread.new (3/2) 0.94471 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#start_threads! (1/1);Thread.new (3/2);Thread#initialize (3/2) 0.90575 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#client_using_secure_connection? (1/2) 0.0045 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#client_using_secure_connection? (1/2);URI::Generic#scheme (1/3) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#client_using_secure_connection? (1/2);String#== (1/4) 0.000542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1) 22.352459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1) 18.245458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6) 18.238583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);URI::Generic#port (1/1) 0.006833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1) 18.178792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Socket.pack_sockaddr_in (1/1) 0.372667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);IO.select (1/2) 2.220625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);IO.select (1/2);Integer#to_f (1/2) 0.010208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Array#[] (2/8) 0.001833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);IO.new (1/1) 12.768375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);IO.new (1/1);Socket#initialize (1/1) 6.371 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Exception.=== (1/1) 0.002625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Module#const_get (1/1) 0.006416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Socket#connect_nonblock (2/1) 2.713041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Enumerable.each_with_index (1/1);Array#each (1/6);NATS::IO::Socket#connect_addrinfo (1/1);Socket#connect_nonblock (2/1);SystemCallError#initialize (1/1) 0.377583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);BasicSocket#setsockopt (1/1) 1.120875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);URI::Generic#hostname (1/2) 0.001292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);URI::Generic#hostname (1/2);String#start_with? (1/3) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);URI::Generic#hostname (1/2);URI::Generic#host (1/2) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::IO::Socket#connect (1/1);Socket.getaddrinfo (1/1) 2.933709 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1) 7.86325 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1) 0.580625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1);Kernel.loop (2/2) 0.554083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1);Kernel.loop (2/2);Integer#+ (2/11) 0.000708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1);Kernel.loop (2/2);Integer#>= (2/6) 0.001626 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1);Kernel.loop (2/2);IO#write_nonblock (2/1) 0.5125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#write (2/1);String#bytesize (2/7) 0.002583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);Regexp#=== (1/1) 0.01175 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#read_line (2/1) 1.719958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#read_line (2/1);IO.select (2/2) 1.384125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#read_line (2/1);IO.select (2/2);Integer#to_f (2/2) 0.004249 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::IO::Socket#read_line (2/1);IO#gets (2/1) 0.302167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#client_using_secure_connection? (1/2) 0.004125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#client_using_secure_connection? (1/2);URI::Generic#scheme (1/3) 0.000875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#client_using_secure_connection? (1/2);String#== (1/4) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#server_using_secure_connection? (2/1) 0.004166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#server_using_secure_connection? (2/1);Hash#[] (4/42) 0.000583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#server_using_secure_connection? (2/1);Hash#[] (4/42);Hash#default (4/16) 8.4e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);String#empty? (1/3) 0.001625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);MatchData#captures (1/1) 0.006542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);Array#first (1/1) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1) 1.823 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1) 1.712666 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1) 1.706584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);Class#new (1/29) 0.416709 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);Class#new (1/29);JSON::Ext::Parser#initialize (1/1) 0.33575 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);Class#new (1/29);JSON::Ext::Parser#initialize (1/1);JSON::Ext::ParserConfig.new (1/1) 0.312041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);Class#new (1/29);JSON::Ext::Parser#initialize (1/1);JSON::Ext::ParserConfig.new (1/1);JSON::Ext::ParserConfig#initialize (1/1) 0.288792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);JSON::Ext::Parser#parse (1/1) 1.212333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);JSON::Ext::Parser.parse (1/1);JSON::Ext::Parser#parse (1/1);JSON::Ext::ParserConfig#parse (1/1) 1.200375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);JSON.parse (1/1);NilClass#nil? (1/13) 0.000292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18) 0.098541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18) 0.09675 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9) 0.08725 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Enumerable.each_with_object (1/1) 0.053 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Enumerable.each_with_object (1/1);Hash#each (1/7) 0.049334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Enumerable.each_with_object (1/1);Hash#each (1/7);String#to_sym (13/1) 0.023415 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Enumerable.each_with_object (1/1);Hash#each (1/7);Hash#[]= (13/23) 0.003251 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);BasicObject#! (1/11) 0.000292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Hash#[] (2/42) 0.001917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#process_info (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Hash#[] (2/42);Hash#default (1/16) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1) 3.5925 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1) 3.551875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1) 3.513792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);Class#new (1/29) 0.101584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);Class#new (1/29);ActiveSupport::JSON::Encoding::JSONGemEncoder#initialize (1/1) 0.012541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1) 3.39575 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding.escape_html_entities_in_json (1/1) 0.001042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1) 3.220792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1) 3.210625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);Module#=== (1/11) 0.0005 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1) 3.203917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1) 0.085792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1);BasicObject#! (1/11) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1);Hash#empty? (1/2) 0.000334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1);JSON::Ext::Generator::State#configure (1/1) 0.072041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1);JSON::Ext::Generator::State#configure (1/1);JSON::Ext::Generator::State#_configure (1/1) 0.053125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#stringify (1/1);JSON.generate (1/1);JSON::Ext::Generator::State.generate (1/1);JSON::Ext::Generator::State#initialize (1/1);JSON::Ext::Generator::State#configure (1/1);Kernel.kind_of? (1/12) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2) 0.128625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Module#=== (5/11) 0.000917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7) 0.023209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);Module#=== (7/11) 0.000164 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (7/2) 0.007835 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (7/2);Module#=== (16/11) 0.000832 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (7/2);Kernel.=== (10/2) 0.000792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (7/2);Kernel.=== (10/2);BasicObject#== (6/7) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Hash#each (1/7);Hash#[]= (7/23) 0.001749 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Kernel.=== (3/2) 0.01375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#jsonify (1/2);Kernel.=== (3/2);BasicObject#== (3/7) 0.000209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);Hash#empty? (1/2) 0.000583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#options (1/1) 0.001541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding::JSONGemEncoder#encode (1/1);String#gsub! (5/2) 0.008125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);ActiveSupport::JSON.encode (1/1);ActiveSupport::JSON::Encoding.json_encoder (1/1) 0.000958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);ActiveSupport::ToJsonWithActiveSupportEncoder.to_json (1/1);Kernel.kind_of? (1/12) 0.000959 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);NATS::Client#auth_connection? (1/1) 0.01475 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);NATS::Client#auth_connection? (1/1);URI::Generic#user (1/1) 0.010917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);NATS::Client#auth_connection? (1/1);NilClass#nil? (1/13) 0.000167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);NATS::Client#auth_connection? (1/1);BasicObject#! (1/11) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);BasicObject#== (1/7) 0.000667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);Hash#[]= (2/23) 0.000708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);Hash#[] (7/42) 0.000749 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#connect_command (1/1);Hash#[] (7/42);Hash#default (2/16) 4.1e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);BasicObject#! (1/11) 0.000708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);NATS::Client#options (2/1) 0.001457 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);Hash#[] (3/42) 0.003708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);String#match (1/1) 0.037917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#process_connect_init (1/1);String#match (1/1);Regexp#match (1/2) 0.034042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1) 0.013084 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Integer#+ (1/11) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Array#shift (1/2) 0.00075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);NATS::Client#server_pool (2/2) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Hash#[]= (2/23) 0.000999 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Hash#[] (5/42) 0.0005 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Hash#[] (5/42);Hash#default (3/16) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);NATS::Client#should_delay_connect? (1/1) 0.002209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);NATS::Client#should_delay_connect? (1/1);Hash#[] (1/42) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);NATS::Client#should_delay_connect? (1/1);Hash#[] (1/42);Hash#default (1/16) 0.0 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#select_next_server (1/1);Array#empty? (1/2) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Array#<< (1/6) 0.000584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Process.pid (1/1) 0.008166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#server_pool (1/2) 0.001 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Hash#[]= (2/23) 0.006958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1) 0.075958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);Class#new (1/29) 0.065333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);Class#new (1/29);NATS::IO::Socket#initialize (1/1) 0.008791 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);Class#new (1/29);NATS::IO::Socket#initialize (1/1);Hash#[] (5/42) 0.000375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);Class#new (1/29);NATS::IO::Socket#initialize (1/1);Hash#[] (5/42);Hash#default (2/16) 8.4e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);NATS::Client#tls_context (1/1) 0.000916 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);URI::Generic#scheme (1/3) 4.2e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);NATS::Client#create_socket (1/1);String#== (1/4) 0.000209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Hash#[] (2/42) 0.000959 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#establish_connection! (1/1);Hash#[] (2/42);Hash#default (1/16) 0.0005 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1) 1.181791 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#shuffle! (1/1) 0.029375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Module#=== (2/11) 0.000875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29) 0.157916 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2) 0.156667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);Class#new (1/29) 0.079541 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);Class#new (1/29);Base#initialize (1/2) 0.078833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);Integer#+ (1/11) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);Base#rand (2/2) 0.026041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2) 0.047875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Kernel.dup (1/10) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);String#each_byte (1/4) 0.00475 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3) 0.013375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6) 0.011584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6) 0.011459 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);Random.urandom (1/3) 0.009583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);Integer#== (1/10) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);SecureRandom.gen_random_urandom (1/6);SecureRandom.gen_random_urandom (1/6);String#length (1/5) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Random::Formatter.random_bytes (1/3);Integer#to_i (1/4) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2) 0.027542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2) 0.025708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4) 0.023875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);Array#[] (12/8) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);Integer#% (12/4) 0.002834 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Class#new (1/29);NATS::NUID#initialize (1/2);NATS::NUID#randomize_prefix! (1/2);Enumerable.inject (1/2);Enumerator#each (1/2);String#each_byte (1/4);String#<< (12/2) 0.002457 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6) 0.84675 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);Module#=== (1/11) 0.008125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);Array#<< (1/6) 0.000833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1) 0.812625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1) 0.798458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI::RFC3986_Parser#split (1/1) 0.119791 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI::RFC3986_Parser#split (1/1);MatchData#[] (8/1) 0.016084 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI::RFC3986_Parser#split (1/1);Regexp#match (1/2) 0.022375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI::RFC3986_Parser#split (1/1);String#ascii_only? (1/2) 0.001334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI::RFC3986_Parser#split (1/1);String#to_s (1/7) 0.000208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1) 0.659125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29) 0.516917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1) 0.217958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_port (1/1) 0.016292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_port (1/1);String#to_i (1/1) 0.002792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_port (1/1);String#empty? (1/3) 0.001167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_port (1/1);Kernel.kind_of? (1/12) 0.000416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_port (1/1);BasicObject#! (1/11) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_scheme (1/1) 0.011917 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_scheme (1/1);String#downcase (1/1) 0.003125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#fragment= (1/1) 0.022125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);String#freeze (1/1) 0.001875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_opaque (1/1) 0.002667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);BasicObject#! (1/11) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);BasicObject#== (1/7) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#query= (1/1) 0.047708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_userinfo (1/1) 0.034666 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_userinfo (1/1);URI::Generic#split_userinfo (1/1) 0.012708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#default_port (1/1) 0.008083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#default_port (1/1);Kernel.class (1/5) 8.3e-05 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#default_port (1/1);URI::Generic.default_port (1/1) 0.002334 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_host (1/1) 0.002792 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Class#new (1/29);URI::Generic#initialize (1/1);URI::Generic#set_path (1/1) 0.002834 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.find (1/1) 0.02075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.find (1/1);Module#const_defined? (1/1) 0.007041 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Hash#[] (1/42) 0.0005 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);Hash#[] (1/42);Hash#default (1/16) 0.000166 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.escape (1/1) 0.044292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.escape (1/1);String#upcase (1/1) 0.004333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.escape (1/1);String#ascii_only? (1/2) 0.000458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI.parse (1/1);URI::RFC3986_Parser#parse (1/1);URI.for (1/1);URI::Schemes.escape (1/1);String#tr (1/1) 0.033584 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI::Generic#hostname (1/2) 0.014 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI::Generic#hostname (1/2);String#start_with? (1/3) 0.00075 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Array#each (1/6);URI::Generic#hostname (1/2);URI::Generic#host (1/2) 0.0015 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Kernel.kind_of? (1/12) 0.011875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Kernel.nil? (1/8) 0.00025 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#dup (2/1) 0.014833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#dup (2/1);Kernel.initialize_dup (2/6) 0.010375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#dup (2/1);Kernel.initialize_dup (2/6);Hash#initialize_copy (2/4) 0.006708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);NilClass#nil? (16/13) 0.000457 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);NATS::Client#validate_settings! (1/1) 0.009333 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);NATS::Client#validate_settings! (1/1);String#start_with? (1/3) 0.000125 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);NATS::Client#validate_settings! (1/1);String#end_with? (1/1) 0.002 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);NATS::Client#validate_settings! (1/1);String#include? (2/1) 0.00325 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#fetch (1/5) 0.001042 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash(singleton)#[] (8/1) 0.025707 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#[]= (11/23) 0.002957 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#[] (22/42) 0.003876 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);NATS::Client#parse_and_validate_options (1/1);Hash#[] (22/42);Hash#default (18/16) 0.000625 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);MonitorMixin.mon_synchronize (1/18) 0.012542 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18) 0.010833 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#connect (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9) 0.008458 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Protobuf::Nats::Config#connection_options (1/1) 0.003875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1) 3.101292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.new_cond (1/3) 0.130417 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29) 0.104083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3) 0.020708 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3);Thread::ConditionVariable.new (1/3) 0.0065 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.new_cond (1/3);Class#new (1/29);MonitorMixin::ConditionVariable#initialize (1/3);Thread::ConditionVariable.new (1/3);BasicObject#initialize (1/8) 0.000875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18) 2.961292 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18) 2.960583 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9) 2.957416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Thread::SizedQueue#push (2/5) 0.038416 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);Array#<< (1/6) 0.002 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2) 2.899209 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);Float#- (1/2) 0.010958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);MonitorMixin::ConditionVariable#wait (1/2) 2.841375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);MonitorMixin::ConditionVariable#wait (1/2);Monitor#mon_check_owner (1/2) 0.012167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);MonitorMixin::ConditionVariable#wait (1/2);Monitor#wait_for_cond (1/2) 2.812375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);MonitorMixin::ConditionVariable#wait (1/2);Monitor#wait_for_cond (1/2);Thread::ConditionVariable#wait (1/2) 2.79825 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);MonitorMixin::ConditionVariable#wait (1/2);Monitor#wait_for_cond (1/2);Thread::ConditionVariable#wait (1/2);Thread::Mutex#sleep (1/2) 2.781875 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);Float#> (1/2) 0.008208 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);NATS::MonotonicTime.now (2/2) 0.022375 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);NATS::Client#flush (1/1);MonitorMixin.mon_synchronize (1/18);MonitorMixin.mon_synchronize (1/18);Monitor#synchronize (1/9);NATS::MonotonicTime.with_nats_timeout (1/2);NATS::MonotonicTime.now (2/2);Process.clock_gettime (2/2) 0.012958 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Hash#merge (1/3) 0.012667 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Hash#merge (1/3);Kernel.initialize_dup (1/6) 0.006167 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Class#new (20000/29);Protobuf::Nats::Client#initialize (20000/1);Protobuf::Nats.start_client_nats_connection (20000/2);Thread::Mutex#synchronize (1/3);Hash#merge (1/3);Kernel.initialize_dup (1/6);Hash#initialize_copy (1/4) 0.004083 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Protobuf.connector_type_class (20000/1) 23.543732 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Kernel.nil? (20000/8) 1.649473 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Logger#debug (20000/7) 55.021803 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Logger#debug (20000/7);Logger#add (20000/8) 25.594033 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Logger#debug (20000/7);Logger#add (20000/8);NilClass#nil? (20000/13) 0.820325 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Class#new (20000/29);Protobuf::Rpc::Client#initialize (20000/1);Hash#[] (20000/42) 1.556465 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Protobuf::Rpc::Service.port (20000/1) 32.600927 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Protobuf::Rpc::Service.host (20000/1) 30.107642 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Hash#merge (20000/3) 120.059325 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Hash#merge (20000/3);Kernel.initialize_dup (20000/6) 55.583595 +Thread:main;(top) (1/1);Integer#times (1/1);Protobuf::Rpc::Service.client (20000/1);Hash#merge (20000/3);Kernel.initialize_dup (20000/6);Hash#initialize_copy (20000/4) 25.149852 diff --git a/real_client.svg b/real_client.svg new file mode 100644 index 0000000..dff7ded --- /dev/null +++ b/real_client.svg @@ -0,0 +1,1001 @@ + + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search +ic + + + +NATS::Client#connect (1/1) (287 samples, 0.01%) + + + +Logger#debug (40000/7) (274 samples, 0.01%) + + + +SecureRandom.gen_random_urandom (20000/6) (723 samples, 0.03%) + + + +Protobuf::Encoder.encode (20000/2) (13,661 samples, 0.62%) + + + +MonitorMixin::ConditionVariable#wait (37884/2) (420,397 samples, 19.03%) +MonitorMixin::ConditionVariab.. + + +Protobuf::Message::Serialization.encode_to (20000/2) (15,827 samples, 0.72%) + + + +NATS::Client#publish (20000/1) (909 samples, 0.04%) + + + +ActiveSupport::Notifications::Fanout#all_listeners_for (20000/1) (194 samples, 0.01%) + + + +Protobuf::Field::BaseField#encode_to_stream (20000/2) (646 samples, 0.03%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (20000/2) (431 samples, 0.02%) + + + +MonitorMixin.mon_synchronize (40000/18) (737,052 samples, 33.36%) +MonitorMixin.mon_synchronize (40000/18) + + +Protobuf::Nats::Client#initialize (20000/1) (2,315 samples, 0.10%) + + + +Protobuf::Message#set_field (20000/4) (232 samples, 0.01%) + + + +SecureRandom.gen_random_urandom (20000/6) (459 samples, 0.02%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2) (3,778 samples, 0.17%) + + + +Protobuf::Field::BaseField#set_field (60000/4) (652 samples, 0.03%) + + + +Protobuf::Message#[]= (20000/1) (375 samples, 0.02%) + + + +MonitorMixin.mon_synchronize (40000/18) (631,476 samples, 28.59%) +MonitorMixin.mon_synchronize (40000/18) + + +Protobuf::Nats::ResponseMuxer#publish (20000/1) (1,470 samples, 0.07%) + + + +Protobuf::Message#initialize (20000/4) (9,665 samples, 0.44%) + + + +Protobuf::Message#each_field_for_serialization (20000/2) (1,535 samples, 0.07%) + + + +Protobuf::Nats::ResponseMuxerRequest#publish (20000/1) (2,062 samples, 0.09%) + + + +Monitor#wait_for_cond (37884/2) (315,194 samples, 14.27%) +Monitor#wait_for_cond.. + + +Hash#merge (20000/3) (201 samples, 0.01%) + + + +Time.now (20000/3) (196 samples, 0.01%) + + + +MonitorMixin.mon_synchronize (20000/18) (1,838 samples, 0.08%) + + + +Protobuf::Field::BaseField#set (60000/1) (2,752 samples, 0.12%) + + + +Protobuf::VarintPure.decode (120000/1) (560 samples, 0.03%) + + + +Protobuf::Rpc::Client#options (100000/1) (307 samples, 0.01%) + + + +Class#new (20000/29) (742 samples, 0.03%) + + + +Protobuf::Nats::ResponseMuxerRequest#cleanup (20000/1) (525 samples, 0.02%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::BaseSetField#call (20000/2) (212 samples, 0.01%) + + + +Protobuf::Message#set_field (60000/4) (1,104 samples, 0.05%) + + + +ActiveSupport::Notifications.instrument (20000/1) (1,594,045 samples, 72.16%) +ActiveSupport::Notifications.instrument (20000/1) + + +Protobuf::Message::Serialization.encode (20000/2) (18,235 samples, 0.83%) + + + +Protobuf::Rpc::Stat#stop (20000/1) (1,164 samples, 0.05%) + + + +MonitorMixin.mon_synchronize (40000/18) (793 samples, 0.04%) + + + +Proc#call (20000/3) (317 samples, 0.01%) + + + +Protobuf::Rpc::Service.client (20000/1) (5,901 samples, 0.27%) + + + +Hash#each_key (20000/2) (1,056 samples, 0.05%) + + + +Random::Formatter.random_bytes (20000/3) (1,038 samples, 0.05%) + + + +Protobuf::Logging.logger (40000/7) (193 samples, 0.01%) + + + +Protobuf::Message::Serialization.encode_to (20000/2) (2,475 samples, 0.11%) + + + +Protobuf::Nats::Client#send_request_through_nats (20000/1) (1,474,329 samples, 66.74%) +Protobuf::Nats::Client#send_request_through_nats (20000/1) + + +Protobuf::Rpc::Connectors::Base#succeed (20000/1) (3,608 samples, 0.16%) + + + +Protobuf::Message#each_field_for_serialization (20000/2) (11,524 samples, 0.52%) + + + +NATS::Client#send_command (20000/2) (266 samples, 0.01%) + + + +Protobuf::Rpc::Connectors::Base#complete (20000/1) (2,086 samples, 0.09%) + + + +Protobuf::VarintPure.encode (60000/6) (372 samples, 0.02%) + + + +Thread:main (2,209,100 samples, 100.00%) +Thread:main + + +Logger#debug (100000/7) (326 samples, 0.01%) + + + +Protobuf::Encoder.encode (20000/2) (1,996 samples, 0.09%) + + + +Protobuf::Rpc::Client#initialize (20000/1) (3,814 samples, 0.17%) + + + +Protobuf::Rpc::Client#method_missing (20000/1) (1,955,035 samples, 88.50%) +Protobuf::Rpc::Client#method_missing (20000/1) + + +Protobuf::Field::VarintField.encode (20000/3) (187 samples, 0.01%) + + + +NATS::Client#new_inbox (20000/2) (883 samples, 0.04%) + + + +Protobuf::Rpc::Stat#start (20000/2) (338 samples, 0.02%) + + + +Class#new (20000/29) (559 samples, 0.03%) + + + +Protobuf::Nats.start_client_nats_connection (20000/2) (437 samples, 0.02%) + + + +Protobuf::Nats::Client#nats_request_with_two_responses (20000/1) (1,172,645 samples, 53.08%) +Protobuf::Nats::Client#nats_request_with_two_responses (20000/1) + + +Time.now (20000/3) (711 samples, 0.03%) + + + +MonitorMixin.mon_synchronize (20000/18) (244 samples, 0.01%) + + + +Protobuf::Rpc::Stat#initialize (20000/2) (409 samples, 0.02%) + + + +Protobuf::Rpc::Connectors::Base#initialize_stats (20000/1) (1,121 samples, 0.05%) + + + +Protobuf::Message#set_field (20000/4) (226 samples, 0.01%) + + + +Protobuf::Message::Serialization.decode (40000/1) (10,813 samples, 0.49%) + + + +Protobuf::Rpc::Stat#start (20000/2) (266 samples, 0.01%) + + + +NATS::MonotonicTime.with_nats_timeout (40000/2) (843,271 samples, 38.17%) +NATS::MonotonicTime.with_nats_timeout (40000/2) + + +Protobuf::Message#[] (20000/2) (261 samples, 0.01%) + + + +Thread::Mutex#sleep (37884/2) (105,031 samples, 4.75%) +Threa.. + + +Protobuf::Rpc::Connectors::Base#initialize (20000/1) (1,206 samples, 0.05%) + + + +Class#new (20000/29) (933 samples, 0.04%) + + + +Random.urandom (20000/3) (198 samples, 0.01%) + + + +Protobuf::Field::BaseField#encode_to_stream (80000/2) (7,065 samples, 0.32%) + + + +Protobuf::Nats::ResponseMuxer#cleanup (20000/1) (364 samples, 0.02%) + + + +Protobuf::Nats::ResponseMuxer#new_request (20000/1) (4,432 samples, 0.20%) + + + +Protobuf::Message#initialize (40000/4) (262 samples, 0.01%) + + + +NATS::Client#establish_connection! (1/1) (242 samples, 0.01%) + + + +Protobuf::Message#set_field (80000/4) (6,724 samples, 0.30%) + + + +Protobuf::Rpc::Client#send_request (20000/1) (1,833,364 samples, 82.99%) +Protobuf::Rpc::Client#send_request (20000/1) + + +Protobuf::Rpc::Stat#initialize (20000/2) (534 samples, 0.02%) + + + +Class#new (20000/29) (11,179 samples, 0.51%) + + + +Hash#each_key (20000/2) (9,383 samples, 0.42%) + + + +StringIO.new (40000/3) (295 samples, 0.01%) + + + +Monitor#synchronize (20000/9) (1,410 samples, 0.06%) + + + +Protobuf::Rpc::Connectors::Base#verify_callbacks (20000/1) (557 samples, 0.03%) + + + +Hash#[] (20000/42) (712 samples, 0.03%) + + + +Protobuf::Field::BaseField#value_from_values_for_serialization (80000/2) (285 samples, 0.01%) + + + +Class#new (20000/29) (191 samples, 0.01%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::BaseSetMethod#call (60000/1) (1,950 samples, 0.09%) + + + +Protobuf::Message::Serialization::ClassMethods.decode (40000/1) (13,874 samples, 0.63%) + + + +Protobuf::Message::Serialization.decode_from (40000/1) (8,340 samples, 0.38%) + + + +Method#call (20000/1) (382 samples, 0.02%) + + + +Protobuf::Rpc::Connectors::Base#data_callback (20000/1) (236 samples, 0.01%) + + + +Class#new (20000/29) (4,599 samples, 0.21%) + + + +Class#new (20000/29) (2,886 samples, 0.13%) + + + +Protobuf::Socketrpc::Response#response_proto (20000/1) (305 samples, 0.01%) + + + +MonitorMixin.mon_synchronize (40000/18) (510 samples, 0.02%) + + + +Protobuf::Message#field? (40000/1) (428 samples, 0.02%) + + + +Protobuf::Socketrpc::Response#server (20000/1) (484 samples, 0.02%) + + + +Protobuf::Rpc::Connectors::Base#parse_response (20000/1) (24,931 samples, 1.13%) + + + +Monitor#synchronize (40000/9) (525,913 samples, 23.81%) +Monitor#synchronize (40000/9) + + +Protobuf::Decoder.decode_each_field (40000/1) (6,394 samples, 0.29%) + + + +Protobuf::Nats::Client#response_timeout (20000/1) (198 samples, 0.01%) + + + +ActiveSupport::Notifications::Fanout#listening? (20000/1) (354 samples, 0.02%) + + + +all (2,209,100 samples, 100%) + + + +Protobuf::Rpc::Connectors::Base#request_bytes (20000/1) (37,723 samples, 1.71%) + + + +Kernel.loop (20000/2) (1,330,324 samples, 60.22%) +Kernel.loop (20000/2) + + +Protobuf::Field::BaseFieldObjectDefinitions::RequiredStringSetField#call (40000/1) (375 samples, 0.02%) + + + +MonitorMixin.new_cond (20000/3) (310 samples, 0.01%) + + + +MonitorMixin.mon_synchronize (20000/18) (2,273 samples, 0.10%) + + + +Thread::ConditionVariable#wait (37884/2) (210,100 samples, 9.51%) +Thread::Condi.. + + +Protobuf::Message::Serialization.set_field_bytes (60000/1) (3,894 samples, 0.18%) + + + +Protobuf::Rpc::Connectors::Base#request_fields (20000/1) (286 samples, 0.01%) + + + +Hash#each (20000/7) (852 samples, 0.04%) + + + +Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1) (1,056,966 samples, 47.85%) +Protobuf::Nats::ResponseMuxerRequest#next_message (40000/1) + + +Hash#each (20000/7) (411 samples, 0.02%) + + + +Monitor#synchronize (40000/9) (237 samples, 0.01%) + + + +Hash#each (20000/7) (8,157 samples, 0.37%) + + + +Protobuf::Field::VarintField.encode (60000/3) (654 samples, 0.03%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::BytesEncodeToStream#call (20000/1) (4,013 samples, 0.18%) + + + +Protobuf::Nats::Client#send_request (20000/1) (1,713,757 samples, 77.58%) +Protobuf::Nats::Client#send_request (20000/1) + + +Thread::Mutex#synchronize (1/3) (361 samples, 0.02%) + + + +Protobuf::Message::Serialization.encode (20000/2) (3,084 samples, 0.14%) + + + +Protobuf::Rpc::Connectors::Base#setup_connection (20000/1) (43,458 samples, 1.97%) +P.. + + +Protobuf::Nats::ResponseMuxer#next_message (40000/1) (950,478 samples, 43.03%) +Protobuf::Nats::ResponseMuxer#next_message (40000/1) + + +(top) (1/1) (2,209,100 samples, 100.00%) +(top) (1/1) + + +Protobuf::Message#initialize (20000/4) (669 samples, 0.03%) + + + +Protobuf::Logging.logger (100000/7) (204 samples, 0.01%) + + + +Protobuf::Message::Serialization::ClassMethods.encode (20000/1) (33,257 samples, 1.51%) + + + +Random::Formatter.uuid (20000/1) (1,834 samples, 0.08%) + + + +NATS::NUID#next (20000/2) (442 samples, 0.02%) + + + +NATS::MonotonicTime.now (80000/2) (198 samples, 0.01%) + + + +Protobuf::Field::BytesField#coerce! (20000/2) (3,013 samples, 0.14%) + + + +Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream#call (60000/2) (1,553 samples, 0.07%) + + + +Protobuf::Message#dup (20000/1) (2,265 samples, 0.10%) + + + +Protobuf::Message#copy_to (20000/1) (1,506 samples, 0.07%) + + + +Hash#default (20000/16) (510 samples, 0.02%) + + + +Class#new (40000/29) (526 samples, 0.02%) + + + +Time#initialize (20000/3) (339 samples, 0.02%) + + + +Integer#times (1/1) (2,086,402 samples, 94.45%) +Integer#times (1/1) + + +Protobuf::Field::BaseField#set_field (80000/4) (5,332 samples, 0.24%) + + + + diff --git a/results.md b/results.md new file mode 100644 index 0000000..292d2b1 --- /dev/null +++ b/results.md @@ -0,0 +1,40 @@ +### JRUBY + +`export JRUBY_OPTS="--disable:did_you_mean -J-Djava.security.egd=file:/dev/./urandom -J-Xmx2g -J-Xms1024m -J-Xmn512m"` + + +#### `jruby-9.4.14.0` +``` +jruby 9.4.14.0 (3.1.7) 2025-08-28 ddda6d5992 OpenJDK 64-Bit Server VM 21.0.11 on 21.0.11 +jit [arm64-darwin] +Warming up -------------------------------------- +single threaded performance 17.000 i/100ms +Calculating ------------------------------------- +single threaded performance 198.890 (±82.0%) i/s (5.03 ms/i) - 5.967k in 30.001485s +``` + +#### `jruby-10.0.5.0` +``` +jruby 10.0.5.0 (3.4.5) 2026-04-06 5db1ba72f3 OpenJDK 64-Bit Server VM 21.0.11 on 21.0.11 +indy +jit [arm64-darwin] +Warming up -------------------------------------- +single threaded performance 13.000 i/100ms +Calculating ------------------------------------- +single threaded performance 317.355 (± Inf%) i/s (3.15 ms/i) - 9.516k in 29.985309s +``` + +#### `ruby-3.1.7` +``` +ruby 3.1.7p261 (2025-03-26 revision 0a3704f218) [arm64-darwin25] +Warming up -------------------------------------- +single threaded performance 43.000 i/100ms +Calculating ------------------------------------- +single threaded performance 658.836 (±12.0%) i/s (1.52 ms/i) - 19.780k in 30.022660s +``` + +#### `ruby-3.4.9` +``` +ruby 3.4.9 (2026-03-11 revision 76cca827ab) +PRISM [arm64-darwin25] +Warming up -------------------------------------- +single threaded performance 77.000 i/100ms +Calculating ------------------------------------- +single threaded performance 808.197 (±10.0%) i/s (1.24 ms/i) - 24.332k in 30.106520s +``` diff --git a/spec/protobuf/nats/jnats_spec.rb b/spec/protobuf/nats/jnats_spec.rb deleted file mode 100644 index 6d8579c..0000000 --- a/spec/protobuf/nats/jnats_spec.rb +++ /dev/null @@ -1,86 +0,0 @@ -require "rspec" - -if ::Protobuf::Nats.jruby? - require "protobuf/nats/jnats" - - describe ::Protobuf::Nats::JNats do - describe "#connection" do - it "calls #connect when no @connection exists" do - expect(subject).to receive(:connect).with({}) - subject.connection - end - - it "attempts to reconnect with options given to #connect" do - allow(::Java::IoNatsClient::ConnectionFactory).to receive(:new).and_raise(::RuntimeError) - provided_options = {:yolo => "ok"} - subject.connect(provided_options) rescue nil - expect(subject.options).to eq(provided_options) - - expect(subject).to receive(:connect).with(provided_options) - subject.connection rescue nil - end - end - - describe "#connect" do - it "creates a new message channel" do - subject.connect - subject.close - end - end - - context "integration tests" do - context "async subscribe" do - before { subject.connect } - after { subject.close rescue nil } - - it "can subscribe async and receive a message" do - # Set up an async receiver. - server_sub = subject.subscribe("yolo.brolo", :queue => "yolo.brolo") do |request, reply_id, _subject| - expect(request).to eq("hello") - subject.publish(reply_id, "received") - subject.flush - end - - # Set up a blocking subscription for the reply. - client_sub = subject.subscribe("hit.me.back") - - # Send a message to the server. - subject.publish("yolo.brolo", "hello", "hit.me.back") - subject.flush - - # Use client to wait for response. - response = subject.next_message(client_sub, 1) - expect(response.data).to eq("received") - - # Clean up - subject.unsubscribe(client_sub) - subject.unsubscribe(server_sub) - end - end - end - - context "auto unsubscribe" do - before { subject.connect } - after { subject.close rescue nil } - - it "can auto unsub after n messages" do - sub = subject.subscribe("hey.dude", :max => 2) - - expect(sub.isClosed).to eq(false) - - # First message - subject.publish("hey.dude", "message1") - response = subject.next_message(sub, 1) - expect(response.data).to eq("message1") - - # Second message - subject.publish("hey.dude", "message2") - response = subject.next_message(sub, 1) - expect(response.data).to eq("message2") - - # All done - expect(sub.isClosed).to eq(true) - end - end - end -end