我正在做一些分析,并为我的代码获得以下结果。
145,470,848 receiver_matches_finder.rb:247 <-145MB
2,863,763 receiver_matches_finder.rb:247 <-280万个对象
======
代码的要点在于,它采用字符串并将其替换为富正则表达式的文本。我正在遍历一个大循环,每次text
都不同(重复数千个项目)
246 regex_text = ''
247 text.chars.each do |char|
248 regex_text << get_regex_substitution(char)
249 end
250 def self.get_regex_substitution(char)
251 CHAR_TO_SUBSTITUTION_MAPPING[char] || char
252 end
CHAR_TO_SUBSTITUTION_MAPPING = {
'0' => "[0o]",
'1' => "[il1]{1,2}",
'g' => "[g0oq]",
'o' => "[o0]{1,2}",
}.freeze
text.chars遍历文本中的每个字符,并使其等效于正则表达式替换。
我不确定是否可以提高此代码的效率?