Är det någon prestandaskillnad mellan funktionerna indexOf och match?
indexOf vs. match
10 svar · 374 visningar · startad av Web-Tor
Antagligen är match lite slöare eftersom den kan använda reguljära uttryck.
Jo, ungefär så tänkte jag också. indexOf är ju lite simplare.
Jag har ett tungt script som jag gärna hade snabbat upp lite så det hade varit bra att veta vilket som är snabbast.
Lite benchmarking visar att indexOf är snabbare i alla browsers. Resultatet och testet finns här: http://member.webforum.nu/6067/versus.html
1000 tack! :f
Hur fick du fram det här?
Hur menar du?
Koden skrev jag själv. Värdena fyllde jag i vartefter koden kördes.
nitro2k01 skrev:
Lite benchmarking visar att indexOf är snabbare i alla browsers. Resultatet och testet finns här: http://member.webforum.nu/6067/versus.html
Snyggt test, och intressant hur mycket snabbare det gick med IE jämfört med FireFox.
Koden är en for-loop som upprepar två operationer av var typ tiotusen gånger, och tiden det tar för detta räknas ut och skrivs ut längst ner på sidan med document.write. Dessa värden har jag fyllt i statiskt i tabellen som referens.
En iakttagelse:
Om du bara vill se om en sträng innehåller en annan sträng är det ingen mening med att använda match-metoden.
Om man istället använder regexp-metoden test, som returnerar true om strängen matchar mönstret och false annars, får man ingen negativ prestandaskillnad i förhållande till indexOf. I Firefox går det t o m snabbare med test än indexOf.
Byt ut den sista for-loopen i nitros kod till
for (i=0; i<10000; i++){
dest = matchstr1.test(sourcestr);
dest = matchstr2.test(sourcestr);
}
för att se skillnaden.
Jag har nu bytt ut match till indexOf på de ställen där det går och scriptet blev betydligt snabbare.
Tack än en gång. :)