Javascript ist Toll!

9. March 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

  • 5. June 2009 -- Speed up your Javascript – Video (0)

    Aktuell wird überall und dort, ein Video von Douglas...

  • 27. October 2012 -- Tween Beispiele (0)

    Das Tween Objekt Ich vertiefe hier noch einmal die...

  • 22. June 2012 -- Tween(2) (0)

    Die Technik um mit Javascript eine Bewegung zu animieren...

Comments (2)
410 mal gelesen.

2 Kommentare

Leave a comment »

Seiten:

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

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

2. Pingback von: Javascript Performance testen? - XHTMLforum
25. December 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 […]

Leave a comment

Name (required)
Mail (wird nicht angezeigt) (required)
Website

Folgende HTML Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot kostenloser Counter Browser-Statistiken
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful