![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
В общем, провел несколько опытов.
Для опыта использовал индексный массив из 100 тыс. элементов. В первой части опыта просто получал доступ к значению каждого элемента, а во второй уже выполнял действия с самими элементами массива. Результаты меня немного удивили. В первой части опыта foreach и for с переменным успехом опережали друг друга, с чего можно сделать вывод, что их использование примерно одинаковое по производительности, но цикл foreach гораздо удобнее использовать. Признаю свою ошибку выше ;) Во второй части опыта, как и ожидалось, foreach показал очень низкий результат, что не располагает к его использованию в подобных ситуациях. З.Ы. Результаты опыта у меня примерно такие:
З.З.Ы. На случай, если кто захочет проверить, прилеплю свой гениальный код Присоединённый файл ( Кол-во скачиваний: 8 )
index.php 1,92 Kb-------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
В подобных - это в каких? В циклах на сто тыщ итераций? Соглашусь. Для 0,00001% программ, где требуется такое количество оборотов, данная рекомендация будет иметь смысл. Впрочем, только в том случае, если этот цикл ничего, кроме присваивания не делает. В реальности, когда мы тестируем не сферический цикл в вакууме (чем повально улекаются все борцы за скорость), кроме получения и записи данных в массив, существует хоть какая-то их обработка - например, регулярным выражением. И какая разница будет этом случае, и имеет ли смысл на нее обращать внимание - отдельный вопрос. Но я понимаю. Если исследовать реальные задачи, а не высосанные из пальца, тогда и подискутировать будет не о чем, и цифры, поражающие воображение некому показать будет. Это сообщение отредактировал(а) Ипатьев - 29.7.2009, 22:40 |
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
В случаях изменения значения элементов массива -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
У автора топика этих элементов будет максимум сотня. Стоит ли разница в скорости на таком количестве итераций потраченного времени на обсуждение и тесты?
Неужели не стыдно преподносить всю эту ерунду, как чудесные озарения, проливающие свет на всю дальнейшую профессиональную деятельность? |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Ипатьев, я вас не совсем понимаю. Если вам проще написать более удобный код вместо чуть более эффективного, я не пытаюсь вас переубеждать
Можно также полагаться на мощь серверов, для которых сэкономленные ресурсы не сыграют особой роли... С другой стороны некоторые рекомендуют использовать одинарные кавычки для вывода текста. В нашем же случае с циклами, думается, разница в быстродействии более заметна. Большое количество элементов взял для большей точности вычислений. В итоге, как видим, при изменении массива цикл foreach почти втрое медленней for. -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Дело в том, что относительные цифры ("в полтора раза") не значат ничего. Многие люди этого не понимают. Ведро воды больше, чем стакан? В 50 раз. А в масштабе мирового океана это имеет хоть какое-то значение? Или хотя бы в масштабе бассейна?
И не надо мне тыкать ресурсами. Ресурсы экономят не на кавычках. |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
Согласен с Ипатьев.
Особенно если оперировать придется максимум наперстками... -------------------- ![]() |
|||
|
||||
| SeregaGREY |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
а как теперь можно не только складывать значения в столбцах, но и умножать значения в строках применительно к вашему скрипту?
то есть например: 1|2|3|круто 1|2|3|некруто 1|2|3|круто в строках умножить 1ое и 3е значения и сложить все эти умнождения? 1*3 +1*3+1*3 = 9
|
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Вот, кстати, о пользе написания готовых скриптов.
Казалось бы, простейшая операция - умножение. И, наверняка, если бы автор вопроса написал код сам, и понимал значение используемых в нем переменных, то с легкостью смог бы их перемножить. А поскольку для него код - абракадабра, то даже с таким простым вопросом идет за помощью на форум. SeregaGREY, твои значения лежат в массиве $yacheiki. Неужели ты не можешь перемножить две переменные? |
|||
|
||||
| SeregaGREY |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 28.7.2006 Репутация: нет Всего: 0 |
$otwet += $yacheiki[1] *$yacheiki[3]; так? |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Примерно. Только элементы в массиве нумеруются с нуля, а значит должно быть
|
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
<offtop> Чем-то мне Ипатьев напоминает Фельдмаршала </offtop> -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
однако, это не он, ибо повторил ту же ошибку. вначале добрый, а потом потихоньку приходит понимание, что вопрошающий часто не ищет знаний, а просто ищет ответ на вопрос, чтобы наконец сдать растреклятую лабу, и нафиг оно ему больше не нужно |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |