PIC vs. non-PIC, take #2
After mentioning George's URL to Rasmus, he mentioned that George's blog is full of spam and that I should do those test myself rather. So I did (Not because Rasmsus said it, but because I only believe what I see myself ;-) The results did definitely show that a statically compile PHP module is faster than a DSO module, though it heavily depends on the script on how much it matters. I tested three different applications, a Hello World script (which doesn't print "Hello World", the homepage of a phpMyAdmin installation and three different configurations of eZ publish .
The "Hello World" application shows the largest performance increase, likely because it is pure PHP code only. The script ran 28% percent faster, and the raw data for this test is here .
Both phpMyAdmin and eZ publish show an increase of little more than 10%, which is not the 30% that was mentioned before, but definitely a worthwhile increase, and it simply comes by running PHP as a static (or non-PIC) module in Apache. Now let's hope that Joe can commit his patch soon. Raw results are available too, for phpMyAdmin and eZ publish .
Comments
Derick,
When compiling php5 statically into apache, do I need to set any config attributes for this NON-pic stuff? (what the heck is PIC anyways?!)
Thanks.
Mike
No, you don't have to do anything, as PIC only has effect when linking against a shared library. PIC is Position Independent Code, allowing you to use the same shared library in different memory spaces (afaik).
Sorry, I posted this on the previous post.
I was wondering, what tool do you use to generate graphics from ab results
I used open office to visualize the results. And exported that too a PNG image.
Life Line
Updated an information and a bench
Created 2 benches
Created 4 picnic_tables, a bench, and a fitness_station; Updated a pub and a sport club
Created 2 benches and 2 waste_baskets; Updated 4 benches, a bus_stop, and a cafe; Confirmed a dentist
Created 3 waste_baskets, 2 main entrances, and a bench; Deleted a cycle_barrier, a bench, and a waste_basket
Created an information; Updated a waste_basket and a bench
Updated 2 waste_baskets and a bench
Created 3 benches
Created a waste_basket; Updated 2 benches and a tree
I walked 3.5km in 35m31s
Created a main entrance and a home entrance
Created an entrance
Updated a house building
Created an entrance
I walked 5.8km in 1h15m06s
I've just finished reading "A Cheese-Monger's Tour de France", by Ned Palmer.
Now I want to try many of those! 🧀
I'm thrilled to announce that I'll be speaking at the 23rd edition of #phpday, the international PHP conference in Italy, organised by @grusp.
I’ll be presenting a talk titled: "Better Debugging With Xdebug".
It's in Verona, Italy, on May 14-15th 2026.
You can use my speaker’s discount code "speaker_10OFF" for 10% off at https://www.phpday.it/tickets/?utm_medium=organic&utm_source=linkedin&utm_campaign=post-speaker
I walked 5.5km in 1h11m00s
I walked 1.1km in 9m37s
Merged pull request #1066
PHP 8.6: Changes to opcache optimisations wrt function arguments
I walked 10.5km in 1h49m54s
Fixed building type
Fixed addresses and building type
Updated a bus_stop, a waste_basket, and a bench


Shortlink
This article has a short URL available: https://drck.me/pvnt-2-3h5