PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘performance’ tag

PHP 7.4.0 RC 5: Selbst kompilieren und testen

with 2 comments

Letzte Woche Donnerstag ist der nach Plan fünfte Release-Candidate von PHP 7.4 erschienen: RC5. Es wird noch einen weiteren Release-Candidate geben, bevor hoffentlich am 28. November 2019 das finale PHP 7.4.0 GA erscheinen wird.

Es ist also höchste Zeit, dem PHP-Team dabei zu helfen, Bugs zu finden. Eigentlich sollte man das schon früher getan haben, aber besser spät als nie!

PHP 7.4 bringt einige interessante neue Features (Array Spread Operator, Typed Properties, Preloading, FFI, Improved Type Variance, Arrow Functions, …), aber auch wieder ein paar Prozent mehr Performance. Eine komplette Liste aller neuen Funktionen, Änderungen, Deprecations, backwards-incompatible Changes etc. befindet sich in der UPGRADING Datei.

Selbst kompilieren

Um die PHP Tests durchlaufen zu lassen, kompilieren wir PHP 7.4 RC5 selbst. Natürlich kann das dann entstandene PHP auch genutzt werden, beispielsweise um die PHPUnit Tests seiner Projekte durchlaufen zu lassen, oder mal einen Test-Webserver zu konfigurieren (Apache, PHP-FPM).

Weiterlesen »

Written by Michael Kliewe

November 4th, 2019 at 9:15 pm

Posted in Allgemein

Tagged with , ,

PHP 7.3.0 RC 4: Performanceboost und bitte testen!

with 4 comments

Vor 3 Tagen ist der nach Plan drittletzte Release-Candidate von PHP 7.3 erschienen: RC4. Es wird noch einen RC5 und RC6 geben, bevor hoffentlich pünktlich zu Nikolaus am 06.12.2018 das finale PHP 7.3.0 GA erscheinen wird.

Es ist also höchste Zeit, dem PHP-Team dabei zu helfen, Bugs zu finden. Eigentlich sollte man das schon früher getan haben, aber besser spät als nie!

PHP 7.3 bringt erstaunliche Performanceverbesserungen im Bereich des Garbage-Collectors. Früher konnte man einiges an Performance gewinnen, indem man stellenweise den Garbage-Collector deaktiviert. Vor allem wenn mit vielen Objekten gearbeitet wird, hat das Deaktivieren einiges an Performance gebracht (teilweise >70%, siehe DomPDF oder Composer). Mit PHP 7.3 ist das nicht mehr nötig, man bekommt die Performanceverbesserungen frei Haus, man muss den GC nicht mehr deaktivieren. Gratis Performanceboost ohne eine Zeile Code zu ändern!

Selbst kompilieren

Also los, wir kompilieren PHP 7.3.0 RC4 selbst, in diesem Fall auf einem Ubuntu 18.04 Server. Damit es nicht langweilig wird, nehmen wir diverse Extensions mit dazu, ihr nehmt am besten eure, die ihr so braucht für eure Applikationen. Weiterlesen »

Written by Michael Kliewe

Oktober 27th, 2018 at 10:23 pm

Performanceboost durch temporäres Abschalten des PHP Garbage Collectors

with one comment

Update 27.10.2018: Mit PHP 7.3 ist das selektive Abschalten des Garbage Collectors wohl nicht mehr nötig.

Auf der Suche nach einfachen Möglichkeiten, die Performance eines CPU-bound PHP-Scripts zu steigern, fiel mir wieder ein, wie der Composer Installer einen drastischen Performanceboost hinbekommen hat. Selbst ausprobiert, und siehe da: Statt 7 Sekunden Laufzeit nur noch 2,7 Sekunden. Whao!

Wie macht man sowas mit nur 1-3 Zeilenänderungen?

Garbage Collection

Ein paar kurze Worte zum Garbage Collector. Am Ende dieses Blogartikels sind ein paar Links für diejenigen, die mehr wissen wollen. Ich versuche es einfach darzustellen.

Der Garbage Collector läuft im Hintergrund eines PHP-Scripts in der PHP-Engine, seine Aufgabe ist es, ungenutzten, nicht mehr gebrauchten Arbeitsspeicher wieder frei zu machen. Dazu durchläuft er alle Variablen und Datenstrukturen, um zu schauen ob sie noch gebraucht werden. Wenn ein Speicherbereich noch gebraucht wird, dann gibt es eine Referenz darauf (eine Variable im einfachsten Fall). Er findet also alle Speicherbereiche, zu denen es keine Variable mehr gibt, und gibt den Speicher wieder frei. Weiterlesen »

Written by Michael Kliewe

Oktober 12th, 2018 at 10:46 am

PHP 7 Feature Freeze

with 3 comments

PHP 7 wird großartig, ich freue mich schon sehr darauf! Ich hoffe dass der straffe Zeitplan eingehalten werden kann, und wir im Oktober/November die Version 7.0 in den Händen halten.

Vor 2 Wochen war der Feature-Freeze, und alle Abstimmungen die noch liefen sind beendet, es stehen also nun mehr oder minder alle Features fest die drin sein werden. Im großen und ganzen wissen wir nun was uns in PHP 7 alles erwarten wird.

Hier stelle ich folgende Features von PHP 7 vor:

  1. Performance
  2. Skalare Typehints
  3. jsond
  4. Coalesce-Operator
  5. Engine-Exceptions
  6. Kontext-sensitiver Lexer
  7. Uniform Variable Syntax
  8. Abstract Syntax Tree
  9. Neue einheitliche Zufallsfunktionen
  10. weiteres

Weiterlesen »

Written by Michael Kliewe

April 2nd, 2015 at 10:58 am

Posted in PHP

Tagged with , , ,

SPDY Support in den Alexa Top 10k

with 3 comments

SPDYEin Großteil der Browser unterstützt es, und fast alle Webserver ebenso: SPDY, der heiße Kandidat für das neue HTTP 2.0 Protokoll. Nach den ersten Tests der SPDY-Implementation in nginx im Juni 2012 habe ich mich gefragt wie verbreitet die Nutzung mittlerweile ist.

Dazu habe ich die Alexa Top 1 Million Liste als CSV heruntergeladen und die Top 10.000 mit Hilfe des Kommandozeilen-Tools spdycat untersucht. Außerdem kann man auf meiner kleine Unterseite eine URL eingeben und sich das Ergebnis anzeigen lassen. Probiert es einfach mal aus:

http://spdyservertest.phpgangsta.de

Weiterlesen »

Written by Michael Kliewe

Januar 24th, 2014 at 3:43 pm