Zur Navigation

PHP: Was ist schneller: 5 mal readfile od. 1 mal include mit 5 Funktionsaufrufen

1 Käptn Blaubär

Hallo,

ich möchte allen Seiten gemeinsame HTML-Codestrecken mit PHP einbinden.

Welche Lösung ist bei 5 einzubindenden Codestrecken schneller?

a)
Für jede der 5 Codestrecken eine eigene Datei anlegen und diese jeweils mit readfile() einbinden.

b)
Für alle Codestrecken eine einzige Datei mit 5 Funktionen anlegen, die Datei mit include() aufrufen und die 5 Codestrecken jeweils über Funktionsaufrufe einbinden.

Vielen Dank für zweckdienliche Hinweise.

18.08.2022 02:31

2 Jörg Kruse

Hier hat jemand mal include() und file_get_contents() in einem Benchmark verglichen:

https://konstantin.blog/2021/php-benchmark-include-vs-file_get_contents/

file_get_contents() liest wie readfile() eine Datei ein, gibt den Inhalt aber nicht aus, sondern speichert ihn in einer Variablen, von daher bedingt vergleichbar.

include() soll dem Benchmark zufolge dann schneller sein, wenn OPcache aktiviert ist, andernfalls soll readfile() schneller sein. Das soll daran liegen, dass PHP-Code geparst und kompiliert werden muss:

As opposed to file_get_contents(), which simply reads the file from disk (or the kernel’s page cache in this case), on a fresh run include() does the exact same thing, but in addition to that, it needs to parse the file as PHP code, and compile it. This takes quite some time it seems.

Der Geschwindigkeitsnachteil wird dann zum Vorteil, wenn OPcache die vorkompilierten Scripte schneller ausliefern kann. Das lässt sich wohl auch auf deinen Fall b) übertragen, wo include() nur einmal angewendet wird, aber dafür fünf Funktionen definiert werden.

Vermutlich werden die Unterschiede bei nur fünf Codestrecken aber kaum messbar sein

18.08.2022 09:53

1 Forenmitglied fand diesen Beitrag gut

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]