Javascript regex Laufzeit Test

Gemessen wird die Zeit, die benötigt wird, um einen String bestehend aus n Zeichen a gegen den Ausdruck (a?)nan zu matchen. Ein NEA wird eine in n exponentielle Laufzeit O(2n) haben, eine DEA-Implementation hat Laufzeit O(n).

Anwachsen von n linear
Länge des regulären Ausdrucks:

Messresultate:

Länge n Laufzeit [ms] log Laufzeit
{{resultat.laenge}} {{Math.round(resultat.zeit * 1000)/1000.}} {{ (resultat.zeit > 0) ? Math.round((Math.log(resultat.zeit)/Math.log(2)) * 1000)/1000. : "" }}