Was ist schneller? toUpperCase () oder toLowerCase () in Javascript?
Hier sind einige Testergebnisse von den wichtigsten Browsern (mehrere Monate alt). Es kommt zu dem Schluss, dass toLowerCase()
schneller ist, aber es gibt keine Einsichten in warum bereitgestellt wird.
BEARBEITEN:
Ich habe den WebKit-JavaScript-Quellcode nur aus Neugier durchgesehen. Die Prototyp-Methoden .toUpperCase()
und .toLowerCase()
sind identisch mit Ausnahme einiger Aufrufe von .toASCIIUpper()
, .toASCIILower()
und Unicode::toUpper()
und Unicode::toLower()
. Bei der weiteren Untersuchung der ersten beiden Methoden habe ich gesehen, dass die Funktion .toLowerCase()
etwas weniger komplex ist als die Funktion .toUpperCase()
.
.toASCIILower()
führt eine einfache Bitverschiebungslogik aus:
.toASCIIUpper()
ist ein bisschen mehr beteiligt:
Die statische Umwandlung und die zusätzliche bitweise Negation (~) in der .toASCIIUpper()
-Funktion, die über eine Million Iterationen wiederholt wurde, könnten möglicherweise für die schlechtere Leistung verantwortlich sein.
Nun, das ist alles spekulativ; Ich habe weder wirklich getestet, noch habe ich versucht, diese Methoden vollständig zu verstehen, aber vielleicht kann jemand anders das ausarbeiten.
Wie in Tests dieser Website heißt es
toLowerCase() is faster than toUpperCase()
Sie sollten identisch sein. Es ist möglich , dass sie für den Fall optimiert werden könnten, in dem alle Zeichen bereits Groß- / Kleinbuchstaben sind, aber dann würde es abhängen, in welchem Fall sich die Zeichenfolge bereits befindet, z. 'abc'.toLowerCase()
wäre schneller als 'ABC'.toLowerCase()
, da keine neue Zeichenfolge zugewiesen werden muss. Ich kenne keine Implementierungen, die das tun.
Wirklich, der einzige Weg, das herauszufinden, ist, beide Funktionen mit verschiedenen Strings zu testen.
Tags und Links javascript optimization