Thread MySQL Benchmark (29 answers)
Opened by paddy at 2009-11-23 23:03

sid burn
 2009-11-24 15:32
#128549 #128549
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
natürlich nicht. wenn man ehrlich vergleichen will und in PHP den zugriff per string benutzt, wäre es ziemlich unfair, auf perl-seite ein array zu verwenden. egal, ob man in PHP die dinger nun hashes oder array nennt, es ist ja dasselbe prinzip.

So simpel wie du sehe ich das nicht.

Bei PHP Arrays und Perl Hashes sind so nicht ganz vergleichbar. PHP Arrays erlauben eben gleichzeitig den Zugriff über einen String bei Perl sind es zwei unterschiedliche Datenstrukturen, eben hash und Array. Der Benchmark ist also aus Prinzip schon nicht wirklich vergleichbar.

Ansonsten vergisst du bei Benchmark zwischen Sprachen wodrauf es ankommt. Nämlich immer noch auf die Lösung. Es macht kein Sinn Sourcecode 1:1 zwischen sprachen zu kopieren, und dann zu sagen x oder y ist schneller.

Möchte man vernünftig Benchmarken muss man die Features der Sprache ausnutzen so wie jemand das Problem angeht der Tief in der Sprache vertraut ist. Was bringt es mir wenn ich stumpfsinnig C Code nach Perl Portiere und die möglichkeiten von Perl nicht ausnutze?

Wenn es darum geht 20.000 Datensätze anzeigen zu lassen kann man dies in Perl mit meinen beschriebenen Weg noch Optimieren.

Ansonsten wie wäre es wenn du fetchrow_arrayref() nutzt es schneller ist und es in PHP vergleichen möchtest? Nicht Möglich da PHP nichts vergleichbares hat und automatisch seine fetten assoziativen arrays aufbaut? Tja, dass ist dann pech für die sprache.

Ansonsten wenn man es so einfach sieht wie du kann man auch den PHP Code ankreiden. Bei Perl wird DBI genutzt eine Datenbankabstraktion, in PHP wird direkt auf die MySQL prozedurale Schnittstelle zugegriffen. Man müsste es also nochmals mit PHP PDO Implementieren das wie DBI bei Perl eine Datenbankabstraktion ist.

Es kommt also drauf an was man Benchmarken möchte. Einfach nur sinnlose zwei Codeschnipsel dann hat man das hier. Diese sind aber nicht aussagekräftig.

Benchmarks zwischen Sprachen sollten aber so ausschauen das eine Aufgabe definiert wird und der beste weg der jeweiligen Sprache genutzt wird um diese aufgabe zu lösen. Alles andere ist sinnlos.

Und der Perl Code würde ebenfalls mit PostgeSQL, SQLite oder vielen anderen gehen, bei PHP nicht.

Quote
wenn du mal von der PHP-seite aus denkst, sollte das sicher einleuchten, dass das kein fairer benchmark mehr ist.

Benchmarks sind selber nahezu sinnlos, vorallem solche Mikrobenchmarks wie diese hier.

Und da spielt es jetzt keine Rolle ob PHP oder Perl schneller ist. Über 20.000 Datensätze auszulesen und einem Benutzer zu präsentieren hat nichts mit einer realen anwendung zu tun. Das ist das typische worin Benchmarks am meisten enden.

Im Benchmarken von Umgebungen die Real sowieso nicht auftreten.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread MySQL Benchmark