Какой самый эффективный способ написать, если еще в php? - PullRequest
0 голосов
/ 30 августа 2011

привет, я создаю большое приложение, используя codeigniter. потому что приложение очень большое, производительность является обязательным. Я хочу оптимизировать свои заявления if else.

есть разница в производительности при использовании от

if(false)   and    if(0)

if(true)   and    if(1)

Какой эффективный способ?

и при использовании логических операторов есть любая последовательность, оптимизирующая производительность

из if((a & b) || c) и if(c || (a & b) )

каков эффективный способ? или эти два одинаковы?

и от

if(a && b) и if(a & b)

каков эффективный путь?

и от

if(a || b) and  if(a | b)

каков эффективный путь?

есть ли разница в производительности между if(a || b) and if((a || b)) обратите внимание, что 2-е, если в двух дополнительных скобках

пожалуйста, помогите мне ................................... заранее спасибо.

Ответы [ 4 ]

4 голосов
/ 30 августа 2011

Я не стал бы связываться с различиями 0 и false / 1 и true, если только вы не знаете, что фрагмент кода, использующий его, является узким местом;это действительно микрооптимизация.

Что касается | против || и & против &&, используйте двухсимвольные;они закорачиваютЧто касается порядка частей, первая всегда будет оцениваться (если оценивается && или ||, то есть), но вторая будет оцениваться, только если первая не даст окончательныйрезультат.Таким образом, первая часть должна быть быстрее второй.Если они оба одинаково быстры, не должно иметь значения, в каком порядке они находятся.

Дополнительные скобки могут замедлить анализатор на минутку, но вы можете кэшировать байт-код, так что это не так уж и сложно.

3 голосов
/ 30 августа 2011

Это также известно как «микрооптимизация», и, как правило, осуждается. Разница вряд ли измерима вообще. Если вы сможете сэкономить 50% своего времени «вычислений» (что очень много для оптимизации), то в конечном итоге вы не получите абсолютно никакой разницы в конечном продукте, если только ваш код - только если и ничего больше. Выполнение одного запроса, файловой операции или даже цикла / foreach чуть-чуть быстрее будет иметь большее значение. Напишите ваши if для удобства чтения, а не для «speed».

И последнее, но не менее важное: для каждого изменения, основанного на производительности, необходимо ИЗМЕРИТЬ. Проводите отдельные и повторные тесты, чтобы выяснить, что быстрее.

3 голосов
/ 30 августа 2011

Ни одна из этих оптимизаций вам не очень поможет. PHP-код никогда не станет узким местом, если вы не запустили какое-либо серьезное приложение для обработки данных, такое как вычисление числа пи до миллиона цифр. Независимо от того, насколько велико ваше приложение, вам необходимо убедиться в том, что:
1) Минимальные файловые операции
2) Большинство ваших запросов должны использовать индекс

Мой ответ может быть неуместным, но это будет верно только в 0,01% случаев

1 голос
/ 30 августа 2011

Php тратит большую часть своего времени на ожидание ответа sql, поэтому не сосредотачивайтесь на этих небольших оптимизациях, они не будут иметь значения. Используйте microtime () для контроля времени выполнения каждого шага, если вы все еще сомневаетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...