![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| WIPS |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
У нас есть код:
Вместо array_unique() может быть любая функция, кот. принимает на вход массив. Естественно он выдает нотисоварененги такого типа:
Какая обработка этой ситуации будет быстрее?:
--------------------
Автопроизводители, машины, марки, модели! |
||||||
|
|||||||
| Avrely |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 15.3.2007 Репутация: нет Всего: 2 |
Мои результаты
|
||||
|
|||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Это шутка? Скажите мне, что это шутка.
|
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Автор темы, погу предложить тебе почитать документацию или книги.
Тебе надо подтянуть уровень пхп хотя бы до базового. Со своей стороны могу предложить платное обучение по скайпу. |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
шедевр Почитай что такое типы и структуры данных в любом другом языке и в php конкретно. -------------------- ![]() |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Шутка. WIPS, разница настолько несущественна, что можно ею пренебречь. Только проблема не в этом, а в том что сравнивать два этих участка кода некорректно, так как они подразумевают разную логику! |
|||
|
||||
| morfus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 30.6.2007 Репутация: 1 Всего: 2 |
Проблема тут не в том "что быстрее" а в том "что разумнее" для данного случая, я чаще встречаюсь с ситуациями когда только проверка, приведение к тем или иным типам вообще встречается в моей (почти 5-ти летней) РНР-практике ОЧЕНЬ редко...
|
|||
|
||||
| WIPS |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
Avrely наверное прав. Только надо будет провести нормальный эксперимент, хотя бы по 1000 раз прогнать разные варианты.
nerezus, вы каким-то образом можете подтвердить свою квалификацию (как программиста так и преподавателя)?
icewind, не надо таких высокомерных выпадов, я осведомлен в теме, а если Вам вопрос кажется глупым можете на него не отвечать. К чему Ваш комментарий? Флуда ради... Специально для тех кого видимо смущает строка могу привести такой пример:
krundetz, разница несущественна если прогнать один раз, а если 1000? А прогоняется такого типа участок кода очень много раз. morfus, в данном случае мне нужно, чтобы в этом участке у меня не возникал Warning если передается не тот тип данных. И я ищу наиболее быстрый способ обработки такой ситуации. Вообщем, провел я эксперимент:
Результат:
krundetz был прав - разницы нет. Спасибо тем, кто пытался помочь - за попытку помощи Вопрос закрыт. --------------------
Автопроизводители, машины, марки, модели! |
||||||||
|
|||||||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
1. Очень много - это сколько? В цифрах? 2. Данная проверка - единственное, что выполняется, или скрипт еще что-то делает? Почему бы не проводить тесты с реальными данными и с реальными массивами? Чтобы убедиться, что операция, которая выполняется 0,01% от общего времени выполнения будь она хоть в 10 раз медленнее, на общее время не повлияет? Откуда такое желание оптимизировать самые мизерные операции? Скрипт, которому надо выполнить тысячу раз array_unique - неоптимальный по определению. Т оптимизировать надо архитектуру, которая приводит к таким задачам. Вот это будет оптимизация. А "проверка или приведение" - это не оптимизация, а крохоборство. |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
К тому что если функция ожидает на входе массив, то нужно передать ей массив, а не строку, приведенную к массиву и это уже вопрос нормальной архитектуры... Таких конструкций в принципе быть не должно. Пардон, конечно, если ответ показался высокомерным, я не хотел ни кого обижать. Возможно просто излишне красочно показал надуманность проблемы -------------------- ![]() |
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Возможно задумаюсь о получении сертификата Zend. Максимальная сумма за заказ - $5k.
|
||||
|
|||||
| krundetz |
|
||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
для нормального эксперимента советую иметь законченый проект и прогнать его через дебагер. Ʃ2 = Ʃ2 при n от 1 до 1000 Угу и теперь варнинг возникнит у тебя в дальнейшем, так как приводя к массиву строку ты получишь массив из одного элемента значением которого будет строка, если ты хочешь выкинуть из строки повторяющиеся символы, то массив должен состоять из символов заключенных в строку. Отсюда вывод необходимо проверить переменную на то являеться ли она массивом и если нет попробовать этот массив создать, и только потом выкидывать оттуда не уникальные элементы. +1 после того как готова черновой вариант проекта
+1 Надо смотреть на реальном проекте, возможно оптимизировать необходимо будет соверешенно в другом месте! Оптимизировать до получения готового проекта бессмыслено так как неизвестно что нужно оптимизировать! |
||||
|
|||||
| WIPS |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
Дорогие любители "реальных" проектов и "идеальной" архитектуры, почему если ч-к задает вопрос, то Вы считаете его сразу глупее себя и начинаете учить жизни? В теме был указан конкретный вопрос, хотелось бы получить ответ или хотя бы совет. Про архитектуру проектов и канонические способы оптимизации человек может быть еще и поболее вас знает. И если бы был вопрос по архитектуре это было бы отражено в теме. Была приведена, если хотите, академическая задача, чтобы конкретизировать вопрос. Неужели Вам было бы интересней разбирать N тыс. строк кода? Да архитектура не идеальна, да есть индуизмы, да есть много минусов, а как вы хотите, если проект работает уже 8-й год. Половины технологий кот. в нем сейчас используются еще даже не существовали когда он начинался. Разработчики меняются, задачи меняются - проект живой, нельзя в нем изменить архитектуру за один вечер, поэтому иногда приходится заниматься и такой "блошиной" оптимизацией - да не эффективно, но дает результат, и дает его быстро. Пользователи не будут ждать пока архитектура поменяется, а уйдут у конкурентам.
В общем, ребята, по моему в этой теме все просто пытались поумничать, а не помочь... жаль, раньше на форуме такого было меньше. Кому интересно отвечу на ваши вопросы. по данным xDebug - 2357 раз.
не задавайте глупых вопросов мир не идеален, иногда и такая "блошиная" оптимизация бывает полезна, деньги клиент платит не за архитектуру, а за сервис, кот. нужен сейчас, а не через N недель
про архитектуру см. вступление к моему посту Ну тогда к чему были ваши заявления об обучении? Если вы хотели "блеснуть талантом", то у вас не вышло, а тот факт, что человек кот. получает до 5 килобаксов за проект сейчас хочет заниматься репетиторством по скайпу наводит на мысли, что не все в порядке в "датском королевстве". К вам пришел кризис? Перепрофилируетесь? Если да, то есть более "рентабельные" виды услуг по телефону ;)
Совершенно с Вами согласен. Только в теме не говорилось о реальной задаче. Или "рИальные пацики" рИшают только "рИальные задачи"?
как раз из дебагера этот вопрос и возник, а серьезный проект законченным быть не может: ты либо догоняешь конкурентов, либо, если таки догнал, должен быть на шаг впереди, а для этого нужно постоянно развиваться, что никак не коррелируется с законченностью
очень красивый цвет и очень крупный шрифт: +1, осмелюсь еще посоветовать в следующий раз нажать CapsLock перед набором текста ;) --------------------
Автопроизводители, машины, марки, модели! |
||||||||||
|
|||||||||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Слишком многословные оправдания.
И постоянные попытки наезда. Я здесь недавно, но по-моему здесь так не принято. Это сообщение отредактировал(а) Ипатьев - 2.8.2009, 12:50 |
|||
|
||||
| WIPS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 22.5.2006 Где: Украина, Киев Репутация: 1 Всего: 8 |
--------------------
Автопроизводители, машины, марки, модели! |
|||
|
||||
![]()
|
| Правила форума "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. |