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...
Celebrating the FIRST EVER Global IoT DevFest! Registration is Still Open to Watch Replays! ATTENTION – There’s still time to sign up for the latest edition of our Intel Global IoT DevFest II on Nov 7-8th 2017.
Simics* is a great teaching tool, at all levels of the software and hardware stack, down to the internal logic of a hardware design.
I was having lunch at the recent LinuxCon and Plumbers conference with a colleague, bragging as usual about how much I love my home near Portland, Oregon.
Cython* is a superset of Python* that additionally supports C functions and C types on variable and class attributes. Cython generates C extension modules, which can be used by the main Python program using the import statement.
The core components of the Internet get updated constantly. Every time the source changes, the health and performance can change. A single source code change can fail to build, can break compatibility with existing code and can change the performance anywhere from a fraction of a percent up to 10% or more on major customer workloads. We're trying to read the pulse of our core components (Python,...
My current job is to lead our company's work on dynamic server languages, such as performance optimization and feature enabling. Besides PHP and HHVM, we want to improve Python. There is a huge amount of Python code in use out there, for example running OpenStack, Swift, DropBox and many others. What I didn't realize when I took the job was that much of this use is in a "dead" language.
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...
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...
The server world has really embraced Python in a big way. For example, the OpenStack project is a very popular Infrastructure as a Service offering, and most of it is written in Python. This makes Python a leader for Software Defined Infrastructure (SDI), Software Defined Storage (SDS) and Software Defined Networking (SDN).