Performance-Frage: String.split und dann zu Fuß auf den array, oder RegExp?
Werde ich einige arbeiten auf eine Linie getrennte Zeichenkette. Die eine wird schneller sein, splitten Sie den text per String.split erstmal aus und gehen dann auf das resultierende array oder direkt zu Fuß den ganzen text über eine reg-exp und konstruieren der endgültigen array auf dem Weg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, der beste Weg, um Ihre Antwort ist, einfach 2 Minuten und schreiben Sie eine Schleife, funktioniert es in beide Richtungen tausend mal und check firebug um zu sehen, welcher schneller ist 😉
Hatte, habe ich das optimieren einer Menge von string-munging während der Arbeit an MXHR und in meiner Erfahrung, nur-String-Methoden sind wesentlich schneller als RegExps in aktuellen Browsern. Verwenden Sie für RegExps, die auf die kürzesten Zeichenfolgen möglich und alles tun, Sie möglicherweise können mit String-Methoden.
Verwende ich zum Beispiel diese kleine Zahl in meinen aktuellen code:
Es ist hässlich wie die Hölle, aber ob Sie es glauben oder nicht, es ist deutlich schneller als die entsprechende RegExp unter hoher Last.
performance
Objekt führt die Art und Weise, die besser als derDate
Objekt für timing. Gibt noch einige falsche Daten (wie null, wenn es war offensichtlich nicht null), so können Sie Sie filtern diese aus. Ich habe festgestellt, dass dies der einfachste Weg, um einzugrenzen, Geschwindigkeiten von konkreten Implementierungsoptionen.Während dieser 2½ Jahre zu spät, hoffentlich hilft etwas Licht auf die Angelegenheit für alle zukünftigen Zuschauer: http://jsperf.com/split-join-vs-regex-replace (Einschließlich benchmarks, die Ergebnisse für mehrere Browser, als auch die funktionale benchmark-code selbst)
Erwarte ich, dass die Verwendung von split() viel schneller. Es hängt von vielen Besonderheiten, die Anzahl der Zeilen vs. Länge, Komplexität regex, etc.