Go to page content

Speed

Typically 10 times (and much more) faster than PHP content management systems.

We have quite a bit of experience with PHP. We like it for building web sites. But we don't like it for building a simple web site that needs to be fast.

With PHP frameworks you typically see page generation times between 150 and 600 milliseconds. Of which a great part is re-discovering wheels.

Zotonic has a typical page generation time of 10 milliseconds or less.

When a site is overloaded …

Most web sites become overloaded when they have popular incoming links from web logs or news sites. They go down because they are serving too many of the same pages.

How silly is that?

Solution is and has been caching of complete pages. That helps, but not when parts of the page are dynamic.

In Zotonic we have mechanisms to prevent different requests from doing the same thing at the same time. When two or more requests come in for the same page, or same page parts, then Zotonic does the work once and sends the result to all requests.

We also keep our hot data set in memory, preventing many database queries.

Loading code

There is a lot good with PHP, especially its flexibility. But it is also inefficient. Every time a PHP script runs its byte code (often stored in a byte code accelerator) is reloaded and reinterpreted.

In PHP CMSs we have re-coded lookup tables as programs because loading the table took 5 milliseconds on a very capable server. And multiple times we went through the include lists to prevent loading modules that are not needed.

All that is not needed with Erlang. Code is loaded and stays loaded till the next hot update of the code.