32-bit vs 64-bit Application Pool bitness level for PHP… Any differences?

This is a commonly asked question that we get and we would love to address it here! I setup a small test server under IIS 7.5 and PHP 5.5 under FastCGI (the exact same PHP setup that our Windows shared services use) and executed a stress test of 10000 requests. The test was executed 10 times in each bitness mode and the average taken between the 10 tests.

PHP - 32-bit vs 64-bit Application Pool

The difference in terms of performance is really zero. The difference of 2 requests per second is not enough to measure any real difference in performance. However when doing this test with the new Zend Opcode Cache extension enabled, we produced segmentation faults when in 64-bit Application Pool mode. When in the 32-bit Application Pool mode, we produced no errors, even after 12 hours of stressing the PHP / worker processes.

So when choosing the best Application Pool bitness mode we have a few recommendations…

  • Either bitness mode will work unless…
  • You are using PHP 5.5 and the Zend Opcode Cache extension within your application, use 32-bit bitness
  • If you are running a mixed language site (Such as .Net and PHP or Classic ASP and PHP), the bitness level you select may affect your application (especially if you are using 64-bit for Classic ASP) so take care in the mode you select

Hopefully this helps anyone that is confused or concerned over the best option for PHP powered websites and the IIS Application Pool bitness mode.