Когда начинаешь изучать PHP, поначалу не задумываешься о быстродействии написанного кода. Думаешь как бы скорее научиться кодить полезные скрипты и обрести нужные для этого навыки и опыт. Конечно небольшие проекты на PHP в 50, 100, или 200 строк кода на странице и так работают достаточно быстро и оптимизируя такой код разницы вы не заметите, она будет исчисляться десятыми и сотыми долями секунд. Но когда начинаешь работать над большими проектами в 500, 1000 строк на странице уже начинаешь задумываться, а насколько быстро они работают и как можно ускорить работу написанного php кода. Тут то и приходится ломать уже сложившиеся привычки написания кода, если вы конечно изначально не приучили себя кодить правильно. Я поначалу о правильности и не задумывался, смотришь, работает да и ладно. Но кодить все равно старался аккуратно. Одной аккуратности мне теперь недостаточно, теперь я слежу за правильностью php кода чтобы обеспечить максимальное его быстродействие. Ниже привожу несколько советов по правильному написанию кода, дабы обеспечить его максимальное быстродействие.
1. Используйте короткие имена переменных, желательно не более 4-х символов.
2. Для вывода строки используйте оператор echo вместо printf и sprint и одинарные кавычки в нем. А для склейки строк с переменной используйте точку:
Неправильно:
echo "Я хочу написать $text";
Правильно:
echo 'Я хочу написать'.$text;
3. Не создавайте лишних переменных. Для отдельных переменных тратится дополнительная память, что замедляет работу кода:
Неправильно:
$a = 5;
$b = 2
$c = $a + $b;
Правильно:
$c = 5 + 2;
4. Не используйте функции внутри цикла for, функция будет выполняться каждый раз при очередном проходе цикла:
Неправильно:
for ($i=0; $i < count($array); $i++) {
//код цикла…
}
Правильно:
$count = count($array);
for ($i=0; $i < $count; $i++) {
//код цикла…
}
5. Если нужно проверить равно ли какое либо значение нулю, используйте оператор сравнения (< или >) вместо конкретного сравнения значений:
Неправильно:
$a = 1;
If ($a != 0) {
//если $a не равно нулю, выполняем код
}
Правильно:
$a = 1;
If ($a > 0) {
// если $a больше нуля, выполняем код
}
Вот собственно и все. Соблюдая эти несложные советы вы ускорите работу своих PHP скриптов в 1.5-2 раза.



Какой смысл в последнем примере?
При необходимости выполнения
кода, когда $a != 0, $a может быть и отрицательным значением, и при проверке $a > 0 код просто не будет исполняться, хотя $a будет != 0.
Это я думаю и так всем поняно и нестал об этом писать. Все же обычно встречаются ситуации когда $a равно или больше нуля. Ситуации где $a может быть меньше, больше или равно нулю бывают редко и тогда конечно 5 пункт не канает.
Да, все это ускоряет работу и не грузит сервер. Согласен!
Такое ощущение, что пост относится к разделу "вредные советы" для обычных проектов :) а для высоко нагруженных куда больше даст использование внешних методов и изменение алгоритмов, а то и переход на другие языки
Имхо:
1. короткие имена использовать допустимо только для локальных переменных небольших функций, а если переменная определяется в начале, а используется через 500 строк кода лучше ей дать "говорящее" имя. Выигрыш по времени не стоит удобства модификации кода
2. если уж гнаться за микросекундами, то правильно
echo 'Я хочу написать',$text3. если есть малейшее сомнение, что значение 5 или 2 может в будущем измениться используйте константы
4. правильно
$i = count($array);
while($--i) {
// ...
}
а может вообще в данной ситуации лучше использовать foreach, а то и функции работы с массивами
5. а чем код
if ($a) {
// ...
}
не нравится, а возврат -1 часто признак ошибки, например для функций возвращающих индекс или количество
В чем вредность этих советов? Проверяется все довольно просто, вставляете в скрипт код для определения времени генерации страницы и смотрите что происходит без этих советов и с ними. Если код небольшой то вы врядли увидите отличия, но если он большой тогда изменения будут, ну а если он очень большой то вы увидите насколько эти советы вредные.
И использование foreach тоже замедляет работу скрипта.
Если массив имеет строковые ключи, то есть два варианта:
1. использовать foreach
2. конструкция list = each
И если ключи не известны, то вариантов у нас нет. Лично я использую foreach
все тупо переписано.
Скучно и не интересно.
Плагиат просто заполонил уже сеть.
Проведите тесты, добавьте кое что от себя, тогда будет что сказать. а так, КГАМ.
Гость, ну во первых не тупо переписанно, а хорошо переписанно и добавленно от себя. А во вторых, ненравится - нечитайте.
писибки.
Просто как снять гостиницу в Минске
обои к сериалам сериальные обои рефераты по географии курсовые по географии дельфины обыкновенный дельфин seropol5
Автору спасибо! Буду свои коды пересматривать. Чайников в мире полно, а покритиковать в худшую сторону любой придурок умеет, так что автору желаю терпения :)
Блин, надо серьйозно учить PHP, а то когда вы начали спорить, я чуть с ума не сошёл, не зная кого же слушать:)
А кто-то может посоветовать какой то ресурс по изучению PHP с нуля? Сайтик или книжку какую-то?
vyмне тоже такой ресурсик не помешал. Люди, не молчите:)
походу тут все жлобятся на эту тему...
капец, погуглите, там этих ресурсов выше крыши!
Насоздавали блогов и лепят статьи, передирая друг у друга... Лучше бы пошире тему обосновали - из собственной практики. Поезжайте лучше на море, на отдых в Крым. Лето уже на подходе.
About this me ready
Помогите определить, здесь Уборка коттеджа баги есть?
Спасибо.
Прикольно, жаль помер блог...
Даааа, действительно хорошая инфа..
НУ Это все хорошо! А вот у меня вопрос такого плана. Нужно на лету разбивать текст на массив строк по три слова, а их оформить в виде ссылки на поиск. Не дам тямы. Вроде работает, но криво. Сам решение придумал, а оно видать сырое, может кто что знает и поучит дурня!
Все таки в больших проектах чаще всего удобнее поступиться данными советами, повысив скорость и качество разработки. Отказываться от foreach - полный бред!
Мой город - Курган
Охоты мало - невольки прибавь.
Вот и я постоянно оптимизирую код сайта об отдыхе в Крыму. Читаешь, читаешь - один плагиат. Нормальных статей не найдешь. Лучше бы приехали в Крым на отдых и написали отзыв...
Кстати, по ходу дела можно еще и недвижимость в Крыму купить. Какой-нибудь дом у моря, где можно заниматься программированием на досуге и писать нормальные коды php.
Курган и Курганская область
Курга́н — город России, административный центр Курганской области. Город расположился на реке Тобол, в 1973 км от Москвы. Население - 324 тысячи человек (по данным на 2008 год). Площадь 390 км².
В соответствии с решением Курганской городской Думы № 255 от 16 сентября 2009 года «О дате основания города Кургана», датой основания Кургана считается 1679 год.[3][4] До этого решения датой основания Кургана официально считался 1782 год, когда по указу императрицы Екатерины II Кургану был присвоен статус города. Существуют и другие мнения относительно даты основания Кургана, в частности, рассматривался 1662 год.[5] Журнал «Наука и жизнь» в № 6 за 1978 год, ссылаясь на «Полное собрание законов Российской империи» и упоминания в летописях, называет основанием города 1553 год. Эта же дата зарождения поселения значится и в энциклопедическом словаре Брокгауза и Ефрона. По книге «Списки населенных мест Тобольской губернии» выпуска 1904 года, Курган был основан в 1633 году. За свою историю город много раз разорялся кочевниками, выгорал дотла и возрождался заново. С 60-х годов XVII века он постоянно значится в исторических документах[6].
Считается, что основание поселению положил крестьянин Тимофей Невежин, срубивший себе избу на берегу Тобола, вблизи древних курганов. На живописный берег реки и благодатную землю потянулись первые переселенцы. Вскоре выросли острог и слобода. Первое название — Царёво Городище — поселение получило по Царёву кургану, о котором известный учёный-энциклопедист и путешественник-естествоиспытатель XVIII века Пётр-Симон Паллас писал: «Сим именем называется чрезвычайной величины курган, о коем никакого не осталось предания, и неизвестно, воздвигнут ли оный древними обитателями сея страны, как памятник какого важного происшествия, или как гробница, покрывающая тело какой ни есть знатной особы[7]. Холм сей имеет в окружности около 240 аршин… К южной стороне от великого сего холма лежит к реке еще несколько маленьких, и видны различныя могильныя насыпи… В шести верстах от оного прибыл я в слободу Царёво-Курганскую или Царёво городище, которая своё название от вышеупомянутого должна производить»[6].
В 1695 году поселение было перенесено на 8 вёрст ниже по течению Тобола и получило новое название — Царекурганская (Царёво-Курганская) слобода.
Отправить комментарий