PTMR PTMR.io
  • Menu
  • Web & Technik
  • Business & Economics
  • Reviews
  • Leben
  • Aktionen
  • Archiv
  • T-Shirts
Werbung durch Google Adsense

PHP: Machen die Ausgabepuffer-Funktionen ob_start()/ob_get_clean() das Skript langsam?

Veröffentlicht am: 24. Jun 2015 20:32 2015-06-24T20:32:10+02:00

In den letzten Monaten habe ich die Ausgabepuffer-Funktionen ob_start() und ob_get_clean() immer häufiger verwendet. Nicht, um das die gesamte Ausgabe zu unterdrücken, sondern um einzelne Fragmente zu verschieben. Ist das schlau?

Konkret habe ich vor allem Code-Teile an eine andere Position verschieben wollen. Um z.B. die Ladezeit der Seite zu beschleunigen, wurde jQuery ans Ende des HTML Dokumentes verlagert. Alle script-Elemente, die jQuery benötigen, können daher erst nach dem jQuery-Import ausgeführt werden. Diese Element werden daher mit ob_start() aufgefangen und mittels ob_get_clean() in einer Variable gespeichert. Jetzt kann es schon passieren, dass z.B. 10-20 solcher Elemente zusammenkommen und der Puffer dementsprechend oft aktiviert und ausgelesen wird.

Doch schadet das der Performance? Da hilft nur ein Test. Ich habe einfach eine feste Tabelle 10.000 mal in einer for-Schleife ausgeben lassen. Einmal direkt und einmal wurde jede Tabelle von ob_start() aufgefangen und mit ob_get_clean() zwischengespeichert. Davon habe ich 5 Testläufe durchgeführt folgendermaßen gemessen:

echo microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];

Das Ergebnis steht in dieser Tabelle:

Durchlauf Sek. ohne Buffer Sek. mit Buffer
1 0.033214092254639 0.047609090805054
2 0.030350923538208 0.045974016189575
3 0.028276920318604 0.044750928878784
4 0.02832293510437 0.044335126876831
5 0.03282618522644 0.040101051330566
Mean 0.030598211 0.044554043
Std. Deviation 0.002368181 0.002795776

Das Ergebnis ist doch ziemlich eindeutig. Auch wenn die Variante ohne Puffer um ein Drittel schneller ist, handelt es sich sogar bei 10.000 Aufrufen nur um ca. 0.015 Sekunden, die man gewinnt.

Fazit

Werbung durch Google Adsense

Ja, offenbar rüttelt ob_start()/ob_get_clean() etwas an der Geschwindigkeit, aber insgesamt ist der Zeitverlust zu vernachlässigen. Vielmehr scheint es so, als ob es auf die Anzahl der Aufrufe gar nicht ankommt. Einmal oder 100.000 Mal führt fast zum gleichen - aber minimalen - Performance-Verlust.

Puffert man die ganze Ausgabe, hat man ggf. den Nachteil, dass der Arbeitsspeicher übermäßig belastet wird. Aber auch das sollte in der Regel kein allzu großes Problem sein. Man sollte für das Debugging eine gewisse Form bewahren. Aber abseits dieser Kleinigkeiten fällt mir kein Grund ein, die Ausgabepuffer-Funktionen nicht zu benutzen. Im Gegenteil, ich halte sie sogar für good practice.

Permalink: http://wmdry.com/1eHFsZ1
Amazon Empfehlungen (Preise von 15.01.2021 19:31)
Werbung durch Google Adsense
Werbung durch Google Adsense

PTMR Blog

Ein Blog über alles, was man nur so im Internet finden kann: Erfahrungs- berichte, Tests, Produktbewertungen und Tipps und Tricks.

Werbung durch Google Adsense

Trendige Beiträge

  • Mit echtem Coca Cola Sirup frisches Cola selbst aufsprudeln
    Mit echtem Coca Cola Sirup frisches Cola selbst aufsprudeln
    Hin und wieder trinke ich gerne mal eine Cola. Leider machen die kleinen Flaschen ordentlich Müll und große 2-Liter-Flaschen sind nicht nur schwer zu schleppen, sondern werden auch schnell schal. Mit einem kleinen Trick kann man sich aber immer selbst eine frische Cola zubereiten. Wie gut das funktioniert habe ich nun getestet.
  • Langsame OneDrive Synchronisierung in zwei Schritten beheben
    Langsame OneDrive Synchronisierung in zwei Schritten beheben
    Der Cloud-Speicherdienst OneDrive von Microsoft bietet einige Vorteile. Er ist gut in Windows 8/8.1 integriert und mit einem Office 365 Abo erhält man sozusagen kostenlos 1 TB an Speicher dazu. Nur leider kam mir OneDrive extrem langsam vor. Mit 2 einfachen Schritten kann man die Synchronisierung aber deutlich beschleunigen.
  • US-Steuerformular W-8BEN richtig ausfüllen
    US-Steuerformular W-8BEN richtig ausfüllen
    Bezieht man Einnahmen aus den USA - z.B. von Fotolia, iStockphoto, 500px oder anderen US-amerikanischen Dienstleistern - behält sich die Steuerbehörde IRS in der Regel 30 % ein. Füllt man das Formular aus, kann man diesen Betrag auf 0 % reduzieren.
  • Windows Kürzel: Audiowiedergabe Standard-Gerät schnell wechseln
    Windows Kürzel: Audiowiedergabe Standard-Gerät schnell wechseln
    Kaum zu glauben aber selbst unter Windows 10 ist es mühsam, das Audioausgabegerät zu wechseln. Daher stelle ich euch meine Lösung vor: NirCMD und Vernküpfungen im Startmenu. Damit könnt ihr schnell zwischen z.B. Kopfhöhrer und Lautsprecher wechseln.
  • Tagesplaner als Word und PDF Vorlage zum Ausdrucken
    Tagesplaner als Word und PDF Vorlage zum Ausdrucken
    Produktivität kommt nicht von selbst. Mir hilft da ein Trick: Am Vorabend festschreiben, was morgen gemacht werden soll. Dabei müssen zwei Dimensionen beachtet werden: Aufgaben und Termine - zusammengefasst zu einem Tagesplaner.
  • Facebook Werbekonto löschen
    Facebook Werbekonto löschen
    Facebook macht es Werbetreibenden nicht leicht. Ein Werbekonto pro Facebook-Konto und keine Möglichkeit, das Werbekonto zu löschen. Nunja, nicht ganz. Tief in den Abgründen der Facebook Hilfe versteckt, findet sich ein obskures Formular.
  • Wie man einen Notebook Kühler selber baut und warum herkömmliche Kühler sinnlos sind
    Wie man einen Notebook Kühler selber baut und warum herkömmliche Kühler sinnlos sind
    Laptops sind heute so ein Ding. Zu dünn fürs Gaming, zu gut, um es aber nicht zu probieren. Das Hauptproblem ist die Hitze. Da muss ein Kühler her. Herkömmliche Notebookkühler haben jedoch schon von Haus aus ein Problem: sie sind per Definition zu schwach.
  • Keller richtig lüften - Warum sind Keller feucht und was man dagegen tun kann!
    Keller richtig lüften - Warum sind Keller feucht und was man dagegen tun kann!
    Beim Einzug in die neue Wohnung habe ich mich über den riesigen Keller gefreut. Leider war dieser ziemlich feucht und hat zur Schimmelbildung und Salpeterausflockungen geneigt. Die erste Reaktion: Fenster auf, wenn es so richtig heiß ist, am besten den ganzen Tag lang. Das war der schlimmste Fehler.
  • 3HuiTube und 3HuiGate Router/Modem Review für Drei LTE Internet
    3HuiTube und 3HuiGate Router/Modem Review für Drei LTE Internet
    Drei bietet zwei neue Geräte für die hauseigenen LTE-Internet-Tarife an. Das 3HuiTube und das 3HuiGate. Wie gut die Hardware wirklich ist und wie praktikabel das mobile Internet von Drei mit diesen Geräten zu nutzen ist, habe ich im Test ausprobiert.
  • Nasse Fenster im Winter erklärt: Ursache und Tipps
    Nasse Fenster im Winter erklärt: Ursache und Tipps
    Besonders einglasige Fenster laufen im Winter schnell an, werden feucht oder gar richtig nass. Ich möchte hier kurz erklären, woran das liegt und was ihr dagegen tun könnt.

Tools

  • Creative Commons Dateien
  • STRLEN Javascript
  • Google Analytics Lesenzeichen Tool
  • Lüften

Unterstütze mich

Dieser Blog soll Wissen und Ideen sammeln. Daher nehme ich mir die Zeit und schreibe insbesondere schwierige Vorgänge oder Gedanken freiwillig auf. Dies kostet viel Zeit, daher freue ich mich über Ihre Unterstützung.

Kaufe ein T-Shirt mit meinem Design:

Sei ein Held - T-Shirt

Bedanken Sie sich mittels PayPal Spende:

Disclaimer & Datenschutz   Impressum
©2021 Gerhard Petermeir