Оптимизация за компилиране с GCC
Тези дни се занимавам с търсене за оптимизация на 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
Много добре :)
Никога правете така…
Никога не запоявайте с включен кабел към rs-232 на компютъра…
А какво стана всъщност … В петък вечер реших да тествам конверторите от rs-232 към ethernet. Включих си поялника и взех някакъв тестов 8 жилен кабел… Запойх му 2,3,5 пин на женския от едната страна и след това от другата, и след като вече бях конфигурирал тези конверторчета да работят по-между реших да тествам. Закачих ги така и на края на slave конвертора бях закачил rs-232 loop. Пуснах хипертерминала на windows-а и почнах да пиша, нещо но нищо … даже в статуса на moxa-а не се виждаше даже, че има нещо изпратено … И си викам освен да разменя RX и TX на серийния порт и да видим какво ще стане .. Изключвам аз женския DB9 от master (rs-232) и вземам кабела към мен за да може да го докарам близо до поялника… Иии в момента в момента, в който посягам да разпоя пин 2 на DB9 конектора става “интересно” … БУМММ ..
Компютъра продъ
л![]()
жи да си работи около 5 секунди още след това започва да дими около PCI слотовете и угасна … Правя опит да включа PC-то, но то не иска и там където издимя виждам как някакъв чип ( Явно той е за серийния порт) започва да свети яко червено и да дими …
Изключвам всички кабели и намирам чипа .. И както си седеше там директно го изтръгнах от платката( ASUS P4S800D-X) … Закачам всички кабели отново цъкам и всичко си тръгва.. Урааа .. Но останах без rs-232 … И всичко, което бях решил да правя тази вечер остана само с мисленето ми …
След малко разследване установих, че зануляването на поялника е вързано към човката му. Проверих и 2та контакта където бе включен компютъра и другия, в който бе включен поялника, но и двата са занулени…
Следващите дни ще търся причината за това “късо”
CentOS 5.1
CentOS 5.1 е тук :) Просто с един ‘yum upgrade’ може да преминете от версия 5 към 5.1. Тук може да видите промените направени в новата версия :) Просто сладка работа :) Ако след това решите да погледнете /etc/redhat-release и видите, че все още е CentOS release 5 (Final) е нормално.
[root@meteo ~]# cat /etc/redhat-release
CentOS release 5 (Final)
[root@meteo ~]# rpm -qa |grep centos-rel
Подробности тук
centos-release-notes-5.1.0-2
centos-release-5-1.0.el5.centos.1
Подробности тук.
При мен ъпгрейда мина на 6 машини без никакви забележки . Тези дни ще направя същото и с останалите.