Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой код быстрее обрабатывается? Какой код быстрее обрабатывается? 
:(
    Опции темы
Maximov
  Дата 9.4.2003, 10:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











какой код обработается быстрее

одной строкой

if ((условие1)and(условие2)and(условие3)and(условие4)and(условие5))
{
}

или
вкладывать

if (условие1)
{if (условие2)
{if (условие3)
{if (условие4)
{if (условие5)
{}
}
}
}
}
  Вверх
Foxx
Дата 9.4.2003, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



А протестировать ?
На глаз мне кажется что первый вариант... но нужно тестирование. Подробности можешь найти на php.spb.ru
PM MAIL ICQ   Вверх
arial
Дата 9.4.2003, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Пишем код:

1-й случай:
---------------------------

$a1=1;
$a2=2;
$a3=3;
$a4=4;
$a5=5;
$time1=microtime();
if (!empty($a1)&&!empty($a2)&&!empty($a3)&&!empty($a4)&&!empty($a5)) {
$time2=microtime();
}
$time3=($time2-$time1)*1000000;
echo $time3;

-----------------------------



2- случай:
------------------------------

$a1=1;
$a2=2;
$a3=3;
$a4=4;
$a5=5;
$time1=microtime();
if (!empty($a1)&&!empty($a2)&&!empty($a3)&&!empty($a4)&&!empty($a5)) {
$time2=microtime();
}
if (!empty($a1)) {
if (!empty($a2)) {
if (!empty($a3)) {
if (!empty($a4)) {
if (!empty($a5)) {
$time2=microtime();
}
}
}
}
}
$time3=($time2-$time1)*1000000;
echo $time3;

------------------------------------

Получили результат:

1-й случай: 86.00
2-й случай: 103.99

Комментарии излишни! cool.gif


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Mark.dll
Дата 9.4.2003, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 28.2.2003
Где: Эстония, Нарва

Репутация: нет
Всего: нет



Браво! biggrin.gif
--------------------
"I wish I could change the world..."
PM MAIL WWW ICQ   Вверх
IZ@TOP
Дата 9.4.2003, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



А попробуйте так :
Код


switch($var)  {
case "если так то":
{
  выполняется то что сюда вписываешь ...
  break;
}
... ну и т.д.




--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Foxx
Дата 9.4.2003, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



не глаз а алмаз smile.gif
PM MAIL ICQ   Вверх
IZ@TOP
Дата 9.4.2003, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата
не глаз а алмаз 

Ты это о чем ?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
  Дата 9.4.2003, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата(Iz @ 9.4.2003, 04:47)
А попробуйте так :
Код


switch($var)  {
case "если так то":
{
  выполняется то что сюда вписываешь ...
  break;
}
... ну и т.д.


baaa.gif

switch здесь не пойдет, потому как он проверяет только одну переменную, например:

switch ($a1) {
case 1:
first_function ();
break;
case 2:
second_function ();
break;
case 3:
third_function ();
break;
case 4:
fourth_function ();
break;
case 5:
fifth_function ();
break;
}

т.е. если переменная $a1,принимает значение 1, то выполняется first_function и т.д.
У нас же задача в другом - нам надо проверить сразу 5 переменных, и только при true выполнить некую функцию, поэтому switch здесь в пролете. cool.gif


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Foxx
Дата 10.4.2003, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата

Цитата

не глаз а алмаз 

Ты это о чем ?

о том что на глаз определил фавора smile.gif
PM MAIL ICQ   Вверх
IZ@TOP
Дата 10.4.2003, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата
т.е. если переменная $a1,принимает значение 1, то выполняется first_function и т.д.
У нас же задача в другом - нам надо проверить сразу 5 переменных, и только при true выполнить некую функцию, поэтому switch здесь в пролете. 

Млин ... а кто разве говорил что мы проверяем не одну переменную ? Тама в начале про это не чего не писали !


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
Дата 10.4.2003, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата(Maximov @ 9.4.2003, 02:16)
какой код обработается быстрее

одной строкой

if ((условие1)and(условие2)and(условие3)and(условие4)and(условие5))
{
}
.....

Он говорил... tounge.gif


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
IZ@TOP
Дата 10.4.2003, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата
QUOTE (Maximov @ 9.4.2003, 02:16)
какой код обработается быстрее

одной строкой

if ((условие1)and(условие2)and(условие3)and(условие4)and(условие5))
{
}
.....

Он говорил... 


Прошу прощенья ... облажался ...

А если проверять одну переменную ? то что будет быстрее (хотя ответ на жтот вопрос я знаю), мне просто интересно какой отрыв во времени ...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
  Дата 10.4.2003, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата(Iz @ 10.4.2003, 04:28)
А если проверять одну переменную ? то что будет быстрее (хотя ответ на жтот вопрос я знаю), мне просто интересно какой отрыв во времени ...

Как и в том случае пользуйся разницей microtime() до и после выполнения проверяемой функции. Так можно что угодно тестить, или время обработки документа у себя на сайте отображать. notify.gif


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
TiHo
Дата 10.4.2003, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 2.1.2003
Где: Israel

Репутация: нет
Всего: нет



Цитата
if ((условие1)and(условие2)and(условие3)and(условие4)and(условие5))
{
}


Однозначно быстрее, потому как AND исключающее условие,
если (условие1) == FALSE то остальные даже проверять не станет.
PM MAIL   Вверх
Foxx
  Дата 10.4.2003, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата
Однозначно быстрее, потому как AND исключающее условие,
если (условие1) == FALSE то остальные даже проверять не станет.


то же самое можно сказать и про второй вариант.
Код
if (условие1)
{if (условие2)
{if (условие3)
{}
}
}

Если не выполниться первое условие то не будут выполняться и остальные. Так что тут ты не прав.

Это сообщение отредактировал(а) Foxx - 10.4.2003, 16:22
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0985 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.