kostenloser Webspace werbefrei: lima-city


Kann man phpbench.com trauen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    http://www.phpbench.com/

    Kann man diesen Benchmarks trauen? Sie kommen mir so ein bisschen komisch vor, weil die foreach-Schleife zB doch eig komplexer als die while ist, oder nicht? Oder bei " muss doch der String erst ausgewertet werden, bei ' nicht. Oder seh ich das Falsch?

    Ich würde da gerne mal die Meinungen einiger Fachleute hier höhren. Was meint ihr zu den Benchmarks? Mir kommen sie ein bissel komisch vor :-S

    Liebe Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. NEIN! phpbench darfst du unter keinen Umständen blind trauen. Du musst dir immre ganz genau den Benchmark-Code ansehen. Denn viele ihrer Benchmarks sind in einer solchen Art und Weise geschrieben, dass eine Variante stark bevorzugt wird (Auf Anhieb sehe ich da schon, dass bei echo mit Kommas Output Buffering verwendet wird, was natürlich die Ergebnise stark ändert.) Weiterhin versucht der Autor da teilweise Sachen zu messen, die er mit seinen Mitteln gar nicht messen kann (beispielsweise Single vs. Double Quotes. Das Parsen wird da bereits vom zend_language_scanner erledigt der lange vor der Ausführung des Scripts mit der Zeitmessung arbeitet.)

    Aber abgesehen davon: Microptimization ist sehr böse. Es bringt einfach nichts. Solche Benchmarks kann man sich ansehen um PHP-Internals besser zu verstehen, aber auf deinen Code sollten sie eher weniger einwirken.

    Und als Antwort zu deiner zweiten Anmerkung: foreach ist wirklich schneller. Das liegt daran, dass PHP die Array Elemente verlinkt, um ihre Reihenfolge zu speichern. Diese Verlinkung kann von foreach sehr effektiv genutzt werden. Alles andere wie beispielsweise for-Schleifen, erfordern meist, dass für jedes Element zuerst ein Hash gebildet wird, dann in einer HashTable nach dem entsprechenden Bucket gesucht wird und anschließend die verlinkte Liste in dem Bucket abgearbeitet wird, bis das passende Element gefunden wurde.

    Aber auch hier erneut: Du solltest foreach nicht benutzen weil es besonders schnell ist, sondern weil es deinen Code schön lesbar macht und normalerweise auch mehr Möglichkeiten bietet für die Weiterverwendung des Script (foreach kann beispielsweise auch über Traversables iterieren.)

    Beitrag zuletzt geändert: 6.6.2011 22:57:18 von nikic
  4. Autor dieses Themas

    g****e

    Ahh, ok, vielen Dank. Das habe ich mir schon gedacht, nur hat mich das tierisch verunsichert.

    Vielen Dank für die gute Antwort.

    Mikrooptimierung kann aber in den normalen Codingstil übergehen, und ich hab mich da halt mal gern informiert^^

    Vielen Dank :)
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!