benchmark-action / benchmark-action/github-action-benchmark

Golang regex matching is slow

Offen
#166 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
1.3k
Forks
183
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Example repro:

```
line = 'BenchmarkRangeQuery/rate_with_large_number_of_series,_1m_range-16 \t 1\t1313564639 ns/op\t1360919864 B/op\t 3697144 allocs/op'
const reExtract = /^(Benchmark\w+(?:\/?[\w()$%^&*-]*?)*?)(-\d+)?\s+(\d+)\s+([0-9.]+)\s+(.+)$/;

line.match(reExtract);
```

Matching is very, very slow. Takes >1min. Probably due to backtracking. Needs investigation.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den bereitgestellten Fall line.match(reExtract) mit der Beispiel-Benchmark-Zeile zu reproduzieren und zu ermitteln, wo dieser reguläre Ausdruck in der TypeScript action verwendet wird. Untersuche, warum das Matching mehr als eine Minute dauert; abgeschlossen ist die Aufgabe, wenn die Eingabe ohne die gemeldete starke Verzögerung korrekt extrahiert wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
performance, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.