Ankündigung

Einklappen
Keine Ankündigung bisher.

Ist PHP für Windows langsamer?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ist PHP für Windows langsamer?

    Hallo

    Mir ist aufgefallen, dass ein Script unter Windows deutlich zu lange gebaucht hat, weshalb ich ein paar Tests gemacht habe.

    vServer E3 1270 @ 3.40GHz - Linux (SSD) PHP 7.0.32
    test_pruefeifelseanweisungen : 0.187 sec.
    test_durchlaufeschleifen : 0.254 sec.
    addslashes.......................0.096 sec.
    chunk_split......................0.040 sec.
    metaphone........................0.434 sec.
    strip_tags.......................0.192 sec.
    md5..............................0.145 sec.
    sha1.............................0.217 sec.
    strtoupper.......................0.059 sec.
    strtolower.......................0.060 sec.
    strrev...........................0.062 sec.
    strlen...........................0.018 sec.
    soundex..........................0.033 sec.
    ord..............................0.019 sec.
    test_textveraendern : 1.373 sec.
    test_mathematischeaufgaben : 0.339 sec.
    --------------------------------------
    Total time: : 2.153 sec.


    vServer XEON CPU undefiniert (ab 1.500MhZ) - Linux (SSD) PHP 7.1.25
    test_pruefeifelseanweisungen : 0.304 sec.
    test_durchlaufeschleifen : 0.325 sec.
    addslashes.......................0.101 sec.
    chunk_split......................0.051 sec.
    metaphone........................0.291 sec.
    strip_tags.......................0.168 sec.
    md5..............................0.217 sec.
    sha1.............................0.276 sec.
    strtoupper.......................0.080 sec.
    strtolower.......................0.071 sec.
    strrev...........................0.077 sec.
    strlen...........................0.024 sec.
    soundex..........................0.041 sec.
    ord..............................0.024 sec.
    test_textveraendern : 1.420 sec.
    test_mathematischeaufgaben : 0.470 sec.
    --------------------------------------
    Total time: : 2.519 sec.

    vServer XEON CPU undefiniert* - Linux (NVMe) PHP 7.3.1
    test_pruefeifelseanweisungen : 0.123 sec.
    test_durchlaufeschleifen : 0.220 sec.
    addslashes.......................0.103 sec.
    chunk_split......................0.031 sec.
    metaphone........................0.237 sec.
    strip_tags.......................0.081 sec.
    md5..............................0.168 sec.
    sha1.............................0.228 sec.
    strtoupper.......................0.064 sec.
    strtolower.......................0.056 sec.
    strrev...........................0.062 sec.
    strlen...........................0.017 sec.
    soundex..........................0.028 sec.
    ord..............................0.018 sec.
    test_textveraendern : 1.093 sec.
    test_mathematischeaufgaben : 0.338 sec.
    --------------------------------------
    Total time: : 1.774 sec.

    *Dies ist der günstigste Server (keine 10 Euro) mit nur einem vCore, bringt aber mit Abstand die besten Ergebnisse.

    DEV-PC i7 - 6700k @ 4.700 - Windows 10 (SSD & RAMDisk) PHP 7.3.1
    test_mathematischeaufgaben : 0.226 sec.
    addslashes.......................0.018 sec.
    chunk_split......................0.020 sec.
    metaphone........................9.611 sec.
    strip_tags.......................0.056 sec.
    md5..............................0.110 sec.
    sha1.............................0.121 sec.
    strtoupper.......................1.710 sec.
    strtolower.......................1.444 sec.
    strrev...........................0.028 sec.
    strlen...........................0.011 sec.
    soundex..........................0.088 sec.
    ord..............................0.011 sec.
    test_textveraendern : 13.228 sec.
    test_durchlaufeschleifen : 0.222 sec.
    test_pruefeifelseanweisungen : 0.154 sec.
    --------------------------------------
    Total time: : 13.83 sec.

    Ich habe mir eigentlich vom i7 die beste Leistung erwartet. Aber hier brechen die Laufzeiten durch die Decke.
    Da ich eh schon dabei war, habe ich auch noch Lesen und Schreiben mit file_[get|put]_contents getestet und wäre dabei fast aus dem Stuhl gekippt.


    vServer E3 1270 @ 3.40GHz - Linux (SSD) PHP 7.0.32
    test_schreibe_1000_x_1mb : 10.082 sec.
    test_schreibe_1000_x_10kb : 0.469 sec.
    test_lese_1000_x_1mb : 0.237 sec.
    test_lese_10k_x_10kb : 0.289 sec.
    --------------------------------------
    Total time: : 11.077 sec.

    vServer XEON CPU undefiniert (ab 1.500MhZ) - Linux (SSD) PHP 7.1.25
    test_schreibe_1000_x_1mb : 3.056 sec.
    test_schreibe_1000_x_10kb : 0.103 sec.
    test_lese_1000_x_1mb : 0.321 sec.
    test_lese_10k_x_10kb : 0.449 sec.
    --------------------------------------
    Total time: : 3.929 sec.

    vServer XEON CPU undefiniert* - Linux (NVMe) PHP 7.3.1
    test_schreibe_1000_x_1mb : 0.012 sec.
    test_schreibe_1000_x_10kb : 0.011 sec.
    test_lese_1000_x_1mb : 0.334 sec.
    test_lese_10k_x_10kb : 0.148 sec.
    --------------------------------------
    Total time: : 0.505 sec.

    DEV-PC i7 - 6700k @ 4.700 - Windows 10 (RAMDisk) PHP 7.3.1
    test_lese_10k_x_10kb : 0.472 sec.
    test_lese_1000_x_1mb : 0.339 sec.
    test_schreibe_1000_x_10kb : 0.110 sec.
    test_schreibe_1000_x_1mb : 0.857 sec.
    --------------------------------------
    Total time: : 1.778 sec.

    DEV-PC i7 - 6700k @ 4.700 - Windows 10 (SSD) PHP 7.3.1
    test_lese_10k_x_10kb : 0.509 sec.
    test_lese_1000_x_1mb : 0.397 sec.
    test_schreibe_1000_x_10kb : 0.234 sec.
    test_schreibe_1000_x_1mb : 1.201 sec.
    --------------------------------------
    Total time: : 2.341 sec.

    Ich habe die Anzahl der Schreib- und Lesevorgänge deutlich erhöht und die Festplatte überwacht. Dabei bin ich nie über 24MB/s gekommen. Da die Unterschiede zwischen SSD und RAMDisk so gering sind, die Unterschiede zu NVMe aber so hoch sind, hat sich mir dann doch die Vermutung aufgedrängt, dass PHP unter Windows deutlich ausbremst.
    Habe ich mein PHP irgendwie falsch konfiguriert, liegt es an der CPU oder ist PHP unter Windows einfach langsamer?

    PS: Mir ist absolut klar, dass solche Benchmarks nur eine minimale Aussagekraft für normale PHP-Anwendungen hat, da eine normale Anwendung keine 10 Mio. If-Else Prüfungen hintereinander durchläuft oder 300.000 mal md5() einsetzt.
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

  • #2
    Habe ich mein PHP irgendwie falsch konfiguriert, liegt es an der CPU oder ist PHP unter Windows einfach langsamer?
    Ich glaube du kannst in erster Linie mal einen produktiven Server (die bei dir oben alle Linux haben) nicht mit einem "DEV-PC" (wie oben mit Win) vergleichen. Ich glaube das macht mehr aus, als das OS an sich, von der generellen Serverconfig her schon.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      test_textveraendern : 13.228 sec.
      was genau ist das ?

      Kommentar


      • #4
        Zitat von tomBuilder Beitrag anzeigen
        was genau ist das ?
        Die Summe der Zeit, welche von den Funktionen darüber benötigt wurde.

        Code:
        addslashes.......................0.018 sec. chunk_split......................0.020 sec.
          metaphone........................9.611 sec.
          strip_tags.......................0.056 sec.
          md5..............................0.110 sec.
          sha1.............................0.121 sec.
          strtoupper.......................1.710 sec.
          strtolower.......................1.444 sec.
          strrev...........................0.028 sec.
          strlen...........................0.011 sec.
          soundex..........................0.088 sec.
          ord..............................0.011 sec.
        Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

        Kommentar


        • #5

          Die Summe der Zeit, welche von den Funktionen darüber benötigt wurde.
          der alles änderde wert steht nicht drüber:

          metaphone........................9.611 sec.
          kann ja nicht mir der platte zusammenhängen ...

          Kommentar

          Lädt...
          X