Döngüde regex yeniden derleme (ARCH4073)
Anahtar java.performance.regex-recompiled-in-loop · Önem warning · Kategori performance
Pattern.compile veya String.matches her çağrıda regex’i yeniden derler. Bir döngü içinde bu, sabit deseni gereksiz yere defalarca derleyerek belirgin maliyet yaratır.
Hatalı
Bölüm başlığı “Hatalı”for (String line : lines) { if (Pattern.compile("\\d{4}-\\d{2}").matcher(line).find()) { accept(line); }}Pattern pattern = Pattern.compile("\\d{4}-\\d{2}");for (String line : lines) { if (pattern.matcher(line).find()) { accept(line); }}Düzeltme
Bölüm başlığı “Düzeltme”Pattern’i döngü dışında bir kez derleyip yinelemelerde yeniden kullanın.