Blog post

Core Challenge In Speeding Up Python, PHP, HHVM, Node.js...

A traditional compiler translates a high-level computer program into machine code for the CPU you want to run it on. An interpreted language translates a high-level language into the machine code for some imaginary CPU. For historical reasons, this imaginary CPU is called a "virtual machine" and its instructions are called "byte code." One advantage of this approach is development speed: creating...
Authored by David S. (Blackbelt) Last updated on 07/04/2019 - 20:00
Blog post

The JITter Conundrum - Just in Time for Your Traffic Jam

In interpreted languages, it just takes longer to get stuff done - I earlier gave the example where the Python source code a = b + c would result in a BINARY_ADD byte code which takes 78 machine instructions to do the add, but it's a single native ADD instruction if run in compiled language like C or C++. How can we speed this up? Or as the performance expert would say, how do I decrease...
Authored by David S. (Blackbelt) Last updated on 07/04/2019 - 20:00
Blog post

PGO: Let It Go (PHP)

We can hope that companies like Intel® will come along with a faster processor. (And this does tend to happen every year). Or we can improve our compilers to produce better machine code. Or we can analyze our own code and change it to run more optimally. For PHP, we do all three: We partner with the processor architects to improve the way they execute PHP; we look for changes we can make to the...
Authored by David S. (Blackbelt) Last updated on 07/03/2019 - 20:08
Blog post

Doubling the Performance of OpenStack Swift with No Code Changes

My current gig is mostly about performance. I manage a group of software engineers dedicated to the languages becoming really important to the cloud and the datacenter.

Authored by David S. (Blackbelt) Last updated on 07/06/2019 - 17:10