Оптимизация кода?

Гравицапа

elbirret elcno
Оптимизация кода?

Есть продукт, в котором активно используется ООП, вплоть до генерации HTML.
Понимаю, что без доступа к исходникам и архитектуре трудно что-то посоветовать, но возможно
профайлингом и оптимизацией больших проектов кто-то уже занимался и сможет подсказать традиционные пути повышения скорости выполнения срипта и уменьшения потребляемых ресурсов?
Пока что работаю над уменьшением количества инклудов в коде (в особенности в определении классов).

-~{}~ 29.08.06 10:50:

Проект без привязки к определённой версии PHP, то есть должно работать на PHP4/PHP5.
 

WP

^_^
И сколько времени выполняется?
Imho, ООП нужно очень в меру, чтобы не лагало.
 

Гравицапа

elbirret elcno
WP
В среднем 1.2-1.6 сек (завист от оперции).
Потребление памяти от 2.5 до 4 метров (завист от оперции).
Imho, ООП нужно очень в меру, чтобы не лагало.
Я согласен, что ООП надо применять только там, где оно действительно нужно и принесёт пользу. Но перекройка архитектуры не стоит в ближайших планах.
 

WP

^_^
Гравицапа
Ничего себе.... я тоже недавно занялся профилированием своего двига, было 0.25 сек, а после локальной оптимизации стало стало 0.18 сек.
Это я к тому, что больших результатов локальной оптимизацией, думаю, добиться не удастся.
Что говорит профайлер?
 

Гравицапа

elbirret elcno
WP
Профайлер (xdebug) говорит, что много ООП...то есть в целом архитектура тормозная...собтвенно хочется конечно малой кровью всё это решить, но боюсь, что не получится.
Дело в излишней абстракции....хтмл код фактически по тегам составлятся
каждый тег собирается.....но всё сильно взаимосвязано и убрать это не получится...проще переписать будет уровень представления, что займёт немало времени.
 

WP

^_^
Smarty и иже с ними уже не катят?
/me представил слой представления такой опнутый, и от удивления развел пальцами.
 

Гравицапа

elbirret elcno
WP
От смарти давно отказались ....по причине нежалания зависимости от сторонних продуктов.
Но это не совсем по топику.

-~{}~ 29.08.06 11:28:

/me представил слой представления такой опнутый, и от удивления развел пальцами.
Ну не всегда же присутствуем при проектировании продукта...и надо уже готовое ускорить.
 

WP

^_^
Гравицапа
Дык может от PHP тоже откажутся? Сторонний продукт.
Если не хотят Smarty, написали бы свой, если есть желание - флаг в руки.
> Ну не всегда же присутствуем при проектировании продукта...и надо уже готовое ускорить.
Ускорить-то можно, вопрос в кол-ве ms.
 

Фанат

oncle terrible
Команда форума
Пока что работаю над уменьшением количества инклудов в коде
мля.
НА ОСНОВАНИИ ЧЕГО ты работаешь над уменьшением количества инклудов? На основании сосания пальца?
 

Гравицапа

elbirret elcno
НА ОСНОВАНИИ ЧЕГО ты работаешь над уменьшением количества инклудов?
На основании того, что инклуд файла достаточно дорогая операция как по времени так и по памяти.
Твои предложения?
На основании сосания пальца?
Это твой способ познать истину?
 

WP

^_^
Гравицапа
> На основании того, что инклуд файла достаточно дорогая операция как по времени так и по памяти.
Это самое узкое место программы? 1 ms на чтение файла? include'ом конечно злоупотреблять не нужно. Но я сомневаюсь что у тебя там 500 файлов грузится безусловно при любой операции. Хотя плюс несомненный - при правильной архитектуре, не парсится лишний код.
 

Гравицапа

elbirret elcno
WP
Инклудов действительно очень много ( классы в отдельных файлах + достачно большое дерево наследования => много инклудов)
Собтвенно и тема была поднята, что бы узнать какие ещё места могут быть критичны с точки зрения скорости и потребления ресурсов.
 

Фанат

oncle terrible
Команда форума
Это твой способ познать истину?
это твой способ, тормоз.

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

Гравицапа

elbirret elcno
Фанат
=) Тебя давно выписали?
Похоже тебя недолечили, судя по эмоциональной окраске твоих постов.
 

Гравицапа

elbirret elcno
Фанат
А с тобой сложно говорить как с нормальным человеком...
Профайлингом занимаюсь впервые, поэтому хотел посоветоваться с теми, кто уже занимался этим и у которых скорее всего есть какие-то наработки...например что какие-то операции php делает особенно медленно... на что стоит обратить внимание

пример, регулярки
 

WP

^_^
Гравицапа
> Инклудов действительно очень много
var_dump(intval('действительно очень много')); // int(0)
/me надеется что в 4-байтный инт поместится кол-во :D
> ( классы в отдельных файлах + достачно большое дерево наследования => много инклудов)
У меня тоже классы в отдельных файлах, это правильно, т.к. не нужно грузить каждый раз их все. Можешь выражаться в числах?
Сколько суммарно вызовов показывает профайлер?
 

Гравицапа

elbirret elcno
WP
около 70-80 вызовов include_once
Преположительно, больше половины из них реальные инклуд, а не повторные.
 

Фанат

oncle terrible
Команда форума
Так вот и надо советоваться
а не бред всякий писать.

Оптимизировать надо не то, что по твоему мнению, или по мнению дяди васи с форума тормозит.
а то, что тормозит у тебя в коде.

и наработки тут только одни - РУЧКАМИ определять узкие места в системе.
Сесть за скрипт и понаставить в нём точек замера времени.
и вывести результат на екран.
м дальше углубляться в код и разбираться.

Причём я безмерно удивлён тем фактом, что ты, вроде бы толковый пацан, не знаешь этого очевидного факта.
Сейчас ты выглядишь так:
"У нас пропадают огромные тыщи денег - сотни тыщ. принято решение экономить. Пока я решил экономить десятки и полтинники".
Высосал из пальца инклюд , и давай его экономить.
 

WP

^_^
> Профайлингом занимаюсь впервые
Я тоже несколько дней назад запустил xdebug впервые.
> кто уже занимался этим и у которых скорее всего есть какие-то наработки
Моск?
> например что какие-то операции php делает особенно медленно
Во-первых это показывает профайлер. Во-вторых нет понятия особенно или неособенно медленно. Есть кол-во ms, и его динамика.
> пример, регулярки
А причем тут PHP? Кривые регулярки всегда будут тормозить, в любом языке. Когда обработчик перебирает кучу вариантов, которые по смыслу задачи перебирать не нужно.

-~{}~ 29.08.06 09:59:

> около 70-80 вызовов include_once
Копейки.
> Преположительно, больше половины из них реальные инклуд, а не повторные.
Не должно быть повторных (лишних require_once), по крайней мере не так много. Но к топику это отношения не имеет.

В общем я надеюсь ты внял и не будешь так плутать. Около года назад меня попросили разобраться почему cms аж 2.5 сек выполняется. Сидел целый день по-всякому пытался оптимизировать, но быстрее секунды не вышло. Слишком много ООП, отсутствие нормального компилируемого шаблонизатора, кривоватые регулярки, в общем полный букет. Так что я советую тебе пересмотреть структуру. А то люди тут, понимаешь, сетуют на небольшую тормознутость Smarty, и выгадывают копейки, а ты.. в общем что говорить.
 
Сверху