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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> foreach vs for 
:(
    Опции темы
NLspieler
Дата 11.5.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для прохода по массиву с натуральными ключами от нуля до n, можно использовать такую конструкцию:

Код

foreach ($array as $value)
{
    echo $value ;
}


Или такую:

Код

$count = count ($array) ;

for ($n=0 ; $n < $count ; $n++)
{
    echo $array[$n] ;
}


Что будет лучше и быстрее работать или же это дело вкуса?
PM MAIL   Вверх
enof
Дата 11.5.2009, 15:21 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



NLspieler, Как вы думаете, foreach создали чтобы показать, какой он медленный и неудобный и тем самым призвать юзать for?
PM MAIL ICQ Skype   Вверх
NLspieler
Дата 11.5.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile Не знаю. Вот и спрашиваю.

Недавно встречал на форуме высказывание, что нужно юзать foreach, 
только если без него действительно никак не обойтись.
Иначе же лучше for.

Писал это кажется bars80080, а он как я заметил, х..ню не напишет.


Пробовал измерить так:

Код

$time = time() ;

//скрипт

$time = time() - $time ;


Результат во всех скриптах равен нулю. Может есть аналог time() но для дольных частей секунды?




Это сообщение отредактировал(а) NLspieler - 11.5.2009, 15:46
PM MAIL   Вверх
enof
Дата 11.5.2009, 15:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если вы не знаете как замерить работу скрипта, не пофиг ли, for или foreach?
Одинаково они примерно работают, foreach быстрее даже зачастую.

Добавлено через 1 минуту и 15 секунд
Угу, посмотрел, у меня foreach примерно раза в два быстрее работает.

Добавлено через 2 минуты и 26 секунд
Не стоит на этом зацикливаться, на кавычках, циклах и т.д., когда, например, одним кривым запросом к базе можно свести все старания на нет.
PM MAIL ICQ Skype   Вверх
nerezus
Дата 11.5.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



NLspieler, правильно писать так:
mov ebx, 0
lbl: inc ebx
cmp ebx,10
jnz lbl

ведь это еще круче и непонятнее, чем использовать for для задач, для которых нужно юзать foreach.




--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 11.5.2009, 16:32 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



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

нет, конечно, некоторые любят чесать правой рукой левое ухо через голову, но стоит ли специально?

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

что касается:
Цитата(enof @  11.5.2009,  15:49 Найти цитируемый пост)
Угу, посмотрел, у меня foreach примерно раза в два быстрее работает.

то это всё из области: а вы с картошкой или вареньем горчицу любите? я в своё время проверял, у меня явно выходило быстрее на for для порядковых массивов, но массивы там были не простые, а циклы были вложенные. т.е. надо смотреть в конкретной ситуации

вопрос надо ли, должен возникнуть только в случае если проект уже начинает скрипеть от нагрузки

а до тех пор, всё-таки лучше пользоваться в разных вариантах специально предназначенными для того функциями
PM MAIL WWW   Вверх
NLspieler
Дата 11.5.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



enof, как правильно производить замер времени работы скрипта в точности до дольных частей секунды?
PM MAIL   Вверх
nerezus
Дата 11.5.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Цитата

вопрос надо ли, должен возникнуть только в случае если проект уже начинает скрипеть от нагрузки
 Смысла нет, все равно не поможет.

http://en.wikipedia.org/wiki/Bottleneck_(engineering)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 11.5.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(NLspieler @  11.5.2009,  16:32 Найти цитируемый пост)
как правильно производить замер времени работы скрипта в точности до дольных частей секунды? 

http://www.php.ru/manual/function.microtime.html

PM MAIL WWW   Вверх
enof
Дата 11.5.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



bars80080, вы соглашаетесь с тем, что вы за for, и тут же приводите аргументы в пользу стандартных средств. smile 
Цитата(bars80080 @  11.5.2009,  17:32 Найти цитируемый пост)
я в своё время проверял

вот именно, что в свое время. Многие приводят эти тесты и сейчас в док-во слов, типа юзай одинарные кавычки, и ваша программа будет работать в два раза быстрее. smile 
Это я к тому, что многие тесты уже не актуальны. К тому же сейчас разработчики пхп наконец-то зашевелились по поводу производительности.

NLspieler, эти тесты ничего не стоят, можно только примерно посмотреть, как обстоят дела.

nerezus, Там про что,в двух словах? С английским у меня не очень =(
PM MAIL ICQ Skype   Вверх
NLspieler
Дата 11.5.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробовал провести тестирование одного скриптика, оказалось, что иногда он выполняется быстрее, иногда медленние. 
Иногда скорость отличается в сотни раз.   smile 
PM MAIL   Вверх
SneG0K
Дата 11.5.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Тестировать скрипты нужно в идеальных условиях... Интересно посмотреть на результат, если во время тестов одновременно записывается три болванки, компилируется прога в VS 2008, играет музыка, работает антивир и еще прочая лабудень, и когда работает только один сервер... За этим следить то надо!
PM WWW Skype   Вверх
enof
Дата 11.5.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SneG0K, Бесполезно. Убивал иксы, апач, мускул и все ненужную дребедень. Все равно разброс огромный во времени.
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 11.5.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Дык а скрипт работает с БД?
PM WWW Skype   Вверх
enof
Дата 11.5.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну речь же идет о быстродействии языковых конструкций. Зачем здесь apache, mysql, оконная система?
PM MAIL ICQ Skype   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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