İçeriğe geç

Döngüde Yeniden Derlenen Regex (ARCH6073)

Anahtar ruby.performance.regex-recompiled-in-loop · Önem warning · Kategori performance

Döngü gövdesinde Regexp.new ile desen oluşturmak her yinelemede regex’i yeniden derler. Sabit deseni döngü dışında bir kez derleyin.

def matches(lines, word)
lines.select do |line|
line =~ Regexp.new("\\b#{word}\\b")
end
end
def matches(lines, word)
pattern = Regexp.new("\\b#{word}\\b")
lines.select { |line| line =~ pattern }
end

Düzenli ifadeyi döngü veya sıcak yol dışında bir kez derleyip yeniden kullanın.