Software

JBoss Business Process Management

Free registration required

Executive Summary

The prototypical Apache/MySQL/PHP architecture stack is the root of PHP performance limitations. Each request that travels to Apache gets its own process that is more or less independent from each other. The processes do not automatically communicate with each other and caching is very limited. Because of Apache's process module, PHP cannot take advantage of the numerous opportunities to cache frequently used data. Furthermore, as one tries to scale an application to several commodity PHP/Apache servers, the database doesn't correspond accordingly. The PHP/Apache process model further adds load to the database. This paper introduces Quercus which solves the performance problems of PHP by completely re-implementing the standard PHP interpreter in Java. With its custom regular expression module, global caching, and static code optimizations for PHP, Quercus is super fast in both synthetic benchmarks and in real applications. Quercus introduces connection pooling and PHP-Java integration to the PHP fold. This permits PHP applications to benefit from proven Java technology. Thus, Java developers can incorporate the strengths of PHP into their applications without a prohibitive performance penalty. Unlike PHP on Apache, Quercus threads come from the global thread pool of the application server. The threads are not isolated and Quercus can cache items like strings, serialized data, function definitions, regular expressions, etc. across requests.

  • Format: PDF
  • Size: 147.6 KB