Javascript ist Toll!

9. März 2009 - 15:33

Benchmarks mit Javascript

Oft entfachen sich hitzige Diskussionen in Foren darüber, welche Funktion für einen Zweck geeigneter und/oder schneller ist. Dann muss ein Benchmark her, mit dem die Geschwindigkeit der unterschiedlichen Funktionen verglichen werden kann. Als langjähriger Perl Programmierer benutze ich häufig das Modul Benchmark mit dem sich das relativ leicht realisieren läßt. Ich habe ein Javascript geschrieben, das ähnlich arbeitet und hier vorstellen möchte.

Das Skript besteht in erster Linie aus der Funktion Benchmark() (neben ein paar Helferfunktionen zum formatieren der Ausgabe). Die Funktion erwartet drei Parameter.

Benchmark(count, tests, onready);

count ist die Anzahl der Ausführungen jeder Funktion, je nach Geschwindigkeit des Rechners und Komplexität der Funktionen, muss hier ein geeigneter Wert gewählt werden. Bei komplexen Funktionen sind ein paar tausend genug, bei einfachsten Vergleichen können auch mal ein paar hundertausend Aufrufe nötig sein, um aussagekräftige Vergleichswerte zu ermitteln. tests ist ein Javascript Objekt, mit folgendem Aufbau:

var tests = {
funktion_1: function() { tu_was();},
funktion_2: function() { tu_was_anderes();},
/* usw. */
};

onready ist eine Funktionsreferenz auf eine Funktion, die am Ende aufgerufen wird. Das ist nötig, da bei lang laufenden Test die Browser u.U. die Skriptausführung stoppen. Daher werden die einzelnen Funktionstests mit einem kurzen (1ms) Timeout unterbrochen. Es ist also nicht möglich einen Rückgabewert unmittelbar zu benutzen.

Beispiel

Das Beispiel vergleicht, welche Funktion am schnellsten ist um einen String in eine Zahl umzuwandeln und gibt dann am Schluss eine Meldung mit dem Ergebnis aus.

Quellcode

var test = {
parseInt: function () { var i = '100.10'; i = parseInt(i);},
parseFloat: function () { var i = '100.10'; i = parseFloat(i);},
mal: function () { var i = '100.10'; i = 1* i;}
};
 
Benchmark(100000, test, function(t) {alert(t);});

Test

Beispiel starten

Download

benchmark.js

ähnliche Artikel

Comments (2)
3723 mal gelesen.

2 Kommentare

Leave a comment »

Seiten:

1. Kommentar von: schlaubi666
5. November 2009: 20:35

Ich bin schon froh, wenn es überhaupt läuft …

2. Pingback von: Javascript Performance testen? - XHTMLforum
25. Dezember 2009: 14:50

[…] Funktionen, die dasselbe leisten, miteinander vergleichen kann, um Algorithmen zu optimieren: Benchmarks mit Javascript [Javascript ist Toll!] Zur JavaScript-Performance tragen sehr verschiedene Faktoren bei, deshalb gibt es auch viele […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy