Тези дни се занимавам с търсене за оптимизация на php-то още при компилиране и след малко търсене открих част от това, което търсих, а то е какви опции да подаден на gcc компилатора за да оптимизираме приложението, което компилираме. В моя случай търси за оптимизация от към тип на процесора. А какво ще рече това, ами че компилатора да ползва пълноценно инструкцийте, който са заложени в процесора( SSE3 и плаваща запетая и т.н). От това, което открих, че за моя случай аз използвам model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz. Трябва да ползвам опцията „-march=prescott -O2 -pipe -fomit-frame-pointer“. Ползвам „-march=prescott “ защото моята версия на gcc version 4.1.2 20070626 (Red Hat 4.1.2-14) и няма как да ползвам опцията, която ще бъде в версия 4.3 ( за момента последната стабилна версия е GCC 4.2.3 от 1 февруари 2008) , която дава възможност да се пише „-march=core2“ … и затова за сега ще си ползвам прескот :) Сега остава да компилирам php-то с всички флагове, който за момента са:
CFLAGS_CLEAN = -I/usr/include -g -O3 -march=prescott -pipe -fomit-frame-pointer, но още чета, че не са ми много на ясни всичките :))
За момента ще го компилирам така, и ще видим каква производителност ще даде :)
Продължавам …
Мдаа добре се справя при компилация на php-5.2.5
при make -j10
real 1m12.523s
user 3m16.265s
sys 0m47.374s
Много добре :)
Допълнение за Xeon :)
export CHOST=“x86_64-pc-linux-gnu“
export CFLAGS=“-march=nocona -O3 -pipe -ftree-vectorize -m64″
export CXXFLAGS=“${CFLAGS}“