İçeriğe geç

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.

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);
}
}

Pattern’i döngü dışında bir kez derleyip yinelemelerde yeniden kullanın.