From 5378867a6b46c742ef00a2239074f6c9959fa60f Mon Sep 17 00:00:00 2001 From: Michael Oberegger Date: Wed, 1 Apr 2026 18:10:38 -0400 Subject: [PATCH 1/3] Optimize Messagebus::Message.decode method --- lib/message_bus/message.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/message_bus/message.rb b/lib/message_bus/message.rb index ee988bf5..7534379e 100644 --- a/lib/message_bus/message.rb +++ b/lib/message_bus/message.rb @@ -9,11 +9,11 @@ def self.decode(encoded) s2 = encoded.index("|", s1 + 1) s3 = encoded.index("|", s2 + 1) - global_id = encoded[0, s1 + 1].to_i - message_id = encoded[(s1 + 1), (s2 - s1 - 1)].to_i - channel = encoded[(s2 + 1), (s3 - s2 - 1)] + global_id = encoded.to_i + message_id = encoded.byteslice(s1 + 1, s2 - s1 - 1).to_i + channel = encoded.byteslice(s2 + 1, s3 - s2 - 1) channel.gsub!("$$123$$", "|") - data = encoded[(s3 + 1), encoded.size] + data = encoded.byteslice(s3 + 1, encoded.bytesize - s3 - 1) MessageBus::Message.new(global_id, message_id, channel, data) end From dacebb9bce376e71776ccb9ec50ad4f0aa8a13f6 Mon Sep 17 00:00:00 2001 From: Michael Oberegger Date: Wed, 1 Apr 2026 18:19:50 -0400 Subject: [PATCH 2/3] Save on a gsub! call if possible --- lib/message_bus/message.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/message_bus/message.rb b/lib/message_bus/message.rb index 7534379e..6697f044 100644 --- a/lib/message_bus/message.rb +++ b/lib/message_bus/message.rb @@ -12,7 +12,7 @@ def self.decode(encoded) global_id = encoded.to_i message_id = encoded.byteslice(s1 + 1, s2 - s1 - 1).to_i channel = encoded.byteslice(s2 + 1, s3 - s2 - 1) - channel.gsub!("$$123$$", "|") + channel.gsub!("$$123$$", "|") if channel.include?("$$123$$") data = encoded.byteslice(s3 + 1, encoded.bytesize - s3 - 1) MessageBus::Message.new(global_id, message_id, channel, data) From dbe7998bb81348c891ade38d8f50bc45ba6ce1fc Mon Sep 17 00:00:00 2001 From: Michael Oberegger Date: Wed, 1 Apr 2026 19:32:49 -0400 Subject: [PATCH 3/3] Use byteindex instead of index --- lib/message_bus/message.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/message_bus/message.rb b/lib/message_bus/message.rb index 6697f044..5bc4965d 100644 --- a/lib/message_bus/message.rb +++ b/lib/message_bus/message.rb @@ -5,9 +5,9 @@ class MessageBus::Message < Struct.new(:global_id, :message_id, :channel, :data) attr_accessor :site_id, :user_ids, :group_ids, :client_ids def self.decode(encoded) - s1 = encoded.index("|") - s2 = encoded.index("|", s1 + 1) - s3 = encoded.index("|", s2 + 1) + s1 = encoded.byteindex("|") + s2 = encoded.byteindex("|", s1 + 1) + s3 = encoded.byteindex("|", s2 + 1) global_id = encoded.to_i message_id = encoded.byteslice(s1 + 1, s2 - s1 - 1).to_i