The PHP compiler turns PHP code into "opcodes", which are then executed on the Zend Virtual Machine. To improve performance, it is possible to optimize these opcodes prior to execution. PHP 7.1 introduces a sophisticated opcode optimization infrastructure, which uses static single assignment (SSA) form and type inference to enable more advanced optimizations. This talk introduces the new optimization infrastructure, the optimizations based on it, and discusses which parts of the PHP language are particularly hostile to this form of optimization. This is an advanced talk, but I will try to present the topic in a way that does not require a strong compiler construction background.

Comments

Comments are closed.

Alessandro Lai at 15:05 on 12 May 2017

The speaker was able to convey in a very concise and simple way a very complex topic. Knowing this kind of stuff is useful to understand the inner workings of the PHP engine.

I enjoy phpday when people that are REALLY influencing the tools we use are invited to talk.

The greteast value of this talk were the human insights about the challenges behind php performance improvements.

Loved the talk, matched greatly with the talk James gave.
Love how even a "failed" project can be used to teach stuff.

Miro Svrtan at 02:21 on 13 May 2017

I really love 'look at what we have done' talks (even when they have failed) with the great explanation of the details.

Topic was really advanced and totally over-my-head so it was bit hard to follow at moments but speaker really did a great job.

Some nervousness was visible at the beginning but :+1: for taking the stage at such a young age Nikita!

Went to a great length to show the effort going on in optimizing PHP 7, despite the clash with its fundamentally dynamic nature. A clear and realistic approach to improving compilers/interpreters.

Just wow. Internals are hard.

Very good talk that I was looking forward to, and I wasn't disappointed. Nikic was able to break down a very complex topic to a level that pretty much everyone is able to understand. The pace was to slow for my taste, but I am certain that it was perfect for the majority, and allowed everyone to follow easily.