Трикове за бързодействие

Pavkatar

Registered
Здравейте,
Имам предложение, да се направи 1 тема (важна) в php/mysql форума, същата като тази: Въпроси за сигорността, но за бързодействие на кодовете.
До скоро въобще не ми пукаше коя функция е по-бърза или по-бавна, но откакто започнах да правя голям и масивен проект, това се оказа доста важно нещо. И мисля, че на много хора би им било от полза, да научат, как да пишат проектите си максимално бързи и ненапрягащи сървъра. Също така може да се покажат и начини за кеширане на информацията и т.н. :?: Дано да се хареса идеята на шефа и да се направи , би било доста полезно :) :?:
 
За мен поне ще е много полезно, предполагам и на други ще им е интересно. :?:
 
ДОбре, може да се измисли нещо!Дайте насоки какво точно да съдържа темата
 
Аз си го представям по следния начин: изброени са конкретни ситуации, като например извеждане на информация от БД и съвет как е най-добре да се направи това и с кои функции, за да е най-бързо. Аз например използвах mysql_fetch_array(), докато не ми казаха, че с mysql_fetch_assoc() е по-бързо.
 
Направете тема и пробвайте.
Аз нямам против. Знам точно какво ще стане.
След като стартира темата ще има 2 полезни топика и след това
се почва. Ама това за какво е?
НА моя хостинг що не работи? А за IPB става ли? Как да го защитя срещу мексикански хакери? Трябва ли да ползвам база данни?
Това ще е спам тема в която трудно ще се намерят полезните неща.
Аз бих предложил да се направи тема.
Някой да напише нещо полезно в тази тема и ако още 5 човека напишат нещо интересно да се направи на урок и да се публикува.
След това урока вече ще се коментира в сайта и няма да създава спам.
Нямам против. Правете си тема. Коментирайте.
 
admin каза:
Направете тема и пробвайте.
Аз нямам против. Знам точно какво ще стане.
След като стартира темата ще има 2 полезни топика и след това
се почва. Ама това за какво е?
НА моя хостинг що не работи? А за IPB става ли? Как да го защитя срещу мексикански хакери? Трябва ли да ползвам база данни?
Това ще е спам тема в която трудно ще се намерят полезните неща.
Аз бих предложил да се направи тема.
Някой да напише нещо полезно в тази тема и ако още 5 човека напишат нещо интересно да се направи на урок и да се публикува.
След това урока вече ще се коментира в сайта и няма да създава спам.
Нямам против. Правете си тема. Коментирайте.
И урок може да е. Важното е да я има информацията. Ако е тема, може в първото мнение да има връзки към по-важните и съдържателни постове по-надолу, т.е. да стане нещо като съдържание, а въпроси, несвързани с темата, могат направо да се трият.
 
Аз знам, че единичните кавички са малко по-бързи от двойните.

Когато трябва да се провери низ с preg_match() трябва първо да се види, дали не може да се мине с някоя функция като ctype_alpha(), ctype_xdigit(), strstr() и т.н.

Трябва да се използва str_replace() вместо preg_replace и ereg_replace.

++$var; е по-бързо от $var++;

Най-бързият loop е
do{
echo('1');
}while($var)

Обаче този цикъл не може да се използва винаги, защото той първо изпълнява това, което е в do един път пък после гледа какво е зададено в while. Така че този цикъл може да се ползва само когато е сигурно, че цикъла трябва да се изпълни поне веднъж.

след него е по бързина е

while($var) {
echo('1');
}

И най-бавен е for цикълът.

explode() е по-бързо от split()

Когато във дадена функция искаме да извикаме глобална променлива е по-бързо да я извикаме чрез $GLOBALS['var'] отколкото да напишем global $var; и след това да я използваме.

Също така когато дефинираме променлива трябва да гледаме колко пъти е използвана в кода. Ако е използвана само веднъж изобщо няма смисъл да се дефинира.

За MySQL:

MySQL таблиците трябва да се проектират много внимателно. Например ако имаме поле user_status, е най-добре да му зададем да бъде char(1), и в него да се записват само стойностите 1 или 0, а не например true, false, blocked и други подобни, които само прахосват ресурс.

Ако имаме поле за въвеждане на данни от потребителя и то е с максимална дължина 32 символа примерно в базата данни полето в което се записват данните трябва също да е 32 символа, а не 150.

IP адресите трябва да се компресират с INET_ATON() и INET_NTOA() за MySQL или съответните функции PHP.

Заключение:
При писането на бърз PHP код е най-важно да се мисли рационално, а не само да се наизустят няколко по-бързи функции, макар че и второто си е от полза. :)

Според мен е най-добре някой да се хване и да тества възможно най-много функции и да направи един хубав, изчерпателен и полезен урок. Аз съм съгласен да го напиша, но не мога да дам срок, защото имам много работа по един сайт, който скоро ще е готов и ще го видите. :)
 
Ма и мен ми се струва добре. Нещо от сорта на рефакторинг, даваш кода и който може да помогне с оптимизация да помогне.
 
Здравейте,
отдавна мина това предложение за такава тема, но всички като че ли забравихме за него. Днес се сетих (защото за пореден път ми трябваше помощ за бързодействие на 1 код) и направих въпросната тема :)

Ето линк и дано да не се оспами както казва Админа :)
http://web-tourist.net/forum/viewtopic.php?p=549802
 

Back
Горе