![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| PROme |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
реализую очередную свою бредовую идею
возник вопрос: что будет работать эффективней, например такая конструкция с вложенным вызовом функций:
или ее развернутый аналог, например:
??? мне кажется что первый вариант должен выполняться быстрее, но будет хавать больше памяти... в общем, как лучше поступить, не подскажите? -------------------- SEO-мастер |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Как раз наоборот. Делай как тебе больше нравится. Это не принципиально. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Мне кажется что первый вариант намного быстрее будет работать. В принципе это можно даже проверить.
PS Большой плюс за первый вариант - краткость - сестра таланта. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
Mal Hack, IZ@TOP просто мне приследовали следующие мысли:
если поглядеть, выгодит:
т.е. загружается трим, висит затем вызывает субстр, висят уже и трим и субстр затем субстр вызывает стрпос, висят все трое в памяти затем это все по очереди закрывается а во втором же случае - запустился-закончился, запустился-закончился... в принципе, 3-4 уровня вложенности еще не страшно... а если более? хотя кто его знает... по крайней мере мне так кажется... -------------------- SEO-мастер |
|||
|
||||
| ST_Falcon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 14.11.2003 Где: Львов Репутация: нет Всего: 1 |
мне тоже второй вариант больше нравится.
не люблю я длинные строки с кучей вложений... во первых запутаться просто, во вторых действительно памяти должно больше хавать. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Во второйм варианте используется лишняя переменная, лишний раз присваивается значение переменной $code, и лишний раз $code передается в качестве параметра по сравнению с первым вариантом.
Поэтому, имхо, первый вариант уж точно памяти меньше кушает. Могу, конечно и ошибаться, но по логике так... Это сообщение отредактировал(а) Mal Hack - 4.4.2005, 11:32 |
|||
|
||||
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
Mal Hack ну, значение этой переменной можно и не присваивать, двууровневое вложение функций по-моему в любом случае не страшно
а по поводу лишней переменной, так, а как насчет того, что в первом варианте, в середине будут висеть в памяти все предшествующие функции - неизвестно еще сколько они хавают, явно больше одной переменной... мне так кажется -------------------- SEO-мастер |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 10 Всего: 73 |
Не, не так это работает: трим не запустится пока не будет рассчитан аргумент, substr тоже, т.о. вложенная запись аналогична последовательной, за исключением лишнего присваивания во втором случае. Про винду могу сказать, что в памяти висеть ничего не будет (точнее уже висят), ибо все эти функции уже находятся в памяти с импортом функций из php4apache.dll с момента старта апача. -------------------- Теперь при чем :P |
|||
|
||||
| PROme |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
да? тогда уже интересней ну, а с другой стороны - ведь в php, если не указано явных переходов, выполняется строчка за строчкой, а тут же интерпритатор должен же как-то помнить, что нужно вернуться впоследствии к вызвавшей функци - тоже какие-то доп ресурсы
угу, но одно дело находятся, а другое - выполняются де-то... они ведь начинают для себя ресурсы жрать... так ведь? ну ладно, всем спасибо за ответы -------------------- SEO-мастер |
||||
|
|||||
![]()
|
| Правила форума "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. |