Zend Engine Interna

Was haben PHP und Java gemeinsam? Deren unterste Schicht der VM/Engine ist in C geschrieben. Aber was interessiert die VM oder Engine? Irgendwann kommt man an den Punkt wo man Performance-Probleme hat und dann muss man verstehen warum etwas Langsam ist. Die Frage dann sollte auch nicht lauten: "Wie bekomme ich die Anwendung schnell?" Sondern eher: "Wie habe ich sie langsam bekommen?" Denn erstmal muss man die Gründe kennen, um dann Lösungen zu finden. Lösungen sind nicht immer so einfach zu finden, weil manche Dinge sind einfach langsam und manchmal muss man sein ganzes Vorgehen ändern. Assoc-Arrays sind toll, aber es sind eigentlich keine Array sondern Hash-Maps und die sind nun mal nicht ganz so performant.
Aber warum das so ist und warum die in PHP7 viel besser implementiert sind, erschließt sich aber nicht einfach so, wenn man nicht weiß, wie die Engine arbeitet. Auch einen Garbage-Collector gibt es in PHP, der genau wie in Java zu 98% super läuft. Aber wenn er Probleme macht, muss man wissen wie er arbeitet um ansatzweise überhaupt das Problem zu verstehen. Zirkel bei Referenzen sind ein großes Problem, wenn er die Objekte zum freigeben markieren will. Reference-Count gibt es auch dort.

Jedem der sich auch für die Interna der Zend Engine 5.x und 7 interessiert und sich etwas über Performance informieren möchte kann ich diese Artikel empfehlen:

Internal value representation in PHP 7 - Part 1
Internal value representation in PHP 7 - Part 2

PHPs new hashtable implementation
User annonyme 2015-08-29 20:03

write comment:
Six + = 10

Thank you for sharing! I agree with you that PHP7 cannot be easily understood. Therefore, people turn to professionals such as Innovecs who can prove its status of a reliable software development company in the US with its wide portfolio of successful cases.
2021-03-05 21:17:18

Thank you for sharing such informative post.
2019-08-05 14:26:06

A lot of thanks, your post is very helpful ! I have been messing around with a <a href="http://mobiwebtech.com/">PHP Zend Engine</a> for the last few weeks.
2015-09-30 15:41:06

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?