![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Dima50 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: 1 Всего: 2 |
Привет
Не кто не знает примерной зависмости количества времени интерпретировния от количества кода? В компилируемых языках такой вопрос не встает, а в PHP невольно задумываешся ведь интепретатору каждый вызов приходиться парсить весь текст. Как вобще интерпритатор действует: 1) интерпитирует весь код файла целиком. 2) Или просто отмечает где начало функций, а уже при вызове функции нужной функции начинает интепретировать ее текст. Это сообщение отредактировал(а) Dima50 - 28.8.2009, 19:36 |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
Это совсем не то о чем надо задумываться!
Код разный бывает и скорость интерпретирования зависит не от количества, а от качества кода. И вообще оптимизировать и парится на счет производительности нужно только в том случае когда часть кода действительно замедляет время выполнения скрипта. Переоптимизированный скрипт хуже венигрета -------------------- ![]() |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Dima50, наблюдая ваши последние темы, мне кажется, вы переходите на рнр с другого языка программирования.... Если не секрет, с какого (а вдруг кто-то сможет строить примеры на аналогиях)?
По поводу времени: 1. Скрипт компилируется в байткод, который кешируется. Если не кешиутеся, увольте либо себя, либо сисадмина. 2. Оптимизироваь стоит то, что является узким местом. Да, echo 'Hello'.' '.'word'; медленнее чем echo 'Hello',' ','word' или echo 'Hello word' -- вопрос только в том, что разницу вы заметите только при выводе этого сообщения N раз в цикле. Опытный разработчик может (правда не всегда верно) предсказать узкие места конкретного прилодения. Ну а длч новиччков могу посоветовать только родно -- набивать собственные шишки (раз нет конкретного вопроса) и _измерять_ где именно ваше приложение тормозит. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
соглашусь с solenko, но от себя добавлю: в реальном проекте(а не сферическом, в вакууме) будет работа с БД, файловой системой или сетью. Или же все сразу. В этом случае даже накладные расходы(к примеру, установление соединения с серверов БД или резолвинг доменного имени в IP) для необходимого функционала(записи данных в базу или сбора RSS) должны(это мое убеждение, к сожалению, замеров я не проводил) оказаться намного значительнее затрат на парсинг(естественно, время выполнения отпарсенного кода никак не зависит от объема - только оит заложенной в код логики). и это без учета кеширования.
|
|||
|
||||
| Dima50 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: 1 Всего: 2 |
Это точно. С С++. И раньше писал на php, но не особо вдаваясь в подробности: Работатет да и ладно. Есть такой анекдот: Студент спрашивает у профессора "Профессор скажите вы когда спите бороду под одеялом держите или над одяелом?". Профессор отвечает "Даже не знаю. Подумать надо...". Через неделю профессор с красными глазами ловит студента и кричит "Ты что гад наделал, мне и так не спиться и этак уснуть не могу". Вот что-то подобное с этим вопросом про время интерпретации. только роль профессора и студента выполняю я сам. По идее вопрос для прикладной работы не имеет значение, да и есть куча акселераторов корыте кешируют, которые полностью снимают подобную проблему. Но вот праздный интерес про работу интерпретатора не дает покоя. Особенно когда смотришь на 2 мегабайта (а то и больше) кода фреймворков. Возникает мысль когда это все интерпретироваться успевает? Это сообщение отредактировал(а) Dima50 - 29.8.2009, 10:50 |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Почитай "Профессиональное программирование на PHP Дж. Шлоссенгейл" пятую часть. Там как раз рассказывается о работе интерпритатора и о том, как писать расширения для PHP Добавлено через 11 минут и 52 секунды PHP-код сначала транслируется в op-codes. Потом вся эта муть передается зенд машине и та уже интерпритирует код. Тут только можно повозмущаться по-поводу подключаемых файлов, если их много, и они не кешируются, то каждый раз все заново будет интерпретироваться. От этого спасают например ionCube или Zend |
|||
|
||||
| Dima50 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 20.10.2007 Репутация: 1 Всего: 2 |
Advanced PHP Programming Schlssnagle G. - этак книга у меня месяца 4 лежала на рабочем столе ждала совего череда Спасибо за информативный пост. |
|||
|
||||
| SneG0K |
|
|||
|
Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Dima50, в принципе все, что в ней есть, есть и в других книгах, но пятая часть почти уникальна. Подобная информация водится очень редко. Думаю, что буду блог забивать этой инфой.
|
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Этап компиляции в байткодл резкий как понос относительно времени исполнения байткода. Так что никаких проблем быть не должно с этим.
И вообще на серверах есть кэш байткода, так что просто не задумывайся над этим. |
|||
|
||||
![]()
|
| Правила форума "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. |