Тормозит ли применение ООП выполнение скрипта?

latex

Guest
Тормозит ли применение ООП выполнение скрипта?

Тормозит ли применение ООП выполнение скрипта? И если тормозит то насколько это значимо?

Я планирую написать довольно большую программу с MySQL и хочу чтобы она состояла из отдельных модулей, которые я бы мог разрабатывать после написания основной части программы (ядра). Я полагаю что в данном случае лучше использовать ООП. Но если это действительгно сильно сказывается на времени выполнения то тут стоит задуматся...
 

tony2001

TeaM PHPClub
выполнение скрипта тормозит кривой код, а не какая-то из парадигм.
 

latex

Guest
Ну про кривой код понятно. Вопрос не в этом. Вот скажем в книжке "Разработка Web-приложений с помощью PHP и MeSQL" авторы Люк Веллинг, Лора Томсон написано "за приемущества ООП приходится платить.Для создания страниц из сценария требуется больше процессорных операций...Для сайта с высоким трафиком это имеет большое значение...". Так как у меня не большой опыт работы с PHP я и спрашиваю у тех кто в этом разбирается...
 

tony2001

TeaM PHPClub
правильно проектируй приложение.
это, естственно, касается любого проекта, ООП или нет.
кроме того, у тебя "сайт с высоким трафиком"?
у тебя все остальное уже оптимизировано донельзя?
не думаю, что код у тебя является узким местом, поэтому пиши так, как тебе удобно в первую очередь.
 

Фанат

oncle terrible
Команда форума
latex, выкини эту книжку на помойку.
Её писали люди, не понимающие вообще ничего.
 

IntenT

SkyDiver
"тормозит" не код, а сам процесс создания экземпляра класса, и предшествующая ему сборка. Это те накладные расходы, от которых невозможно полностью избавиться, как ни проектируй.
Правильное проектирование просто сведет их к минимуму.
 

tony2001

TeaM PHPClub
>"тормозит" не код, а сам процесс создания экземпляра класса
миф.

>, и предшествующая ему сборка.
не "сборка", а "парсинг", который присутствует всегда и везде.
 

neko

tеam neko
svetasmirnova
не хочу провоцировать флейм, но мне очень интересно узнать что именно считалось и с каким результатом
такой вот бенчмарк фетиш есть
 

latex

Guest
Спасибо всем, я получил ответ на свой вопрос. Буду делать так как мне удобней.
 

Dvous

Новичок
Ну судя из своей практики, хотя с ООП я познакомился отностильно недавно.
Мое мнение, хотя оно и может быть ошибочным

ООП не тормозит выполнение.. а при правильности написания даже ускоряет. Есдинственное что меняется наверное не в лучшую сторону, это увеличивается сам код.
 

IntenT

SkyDiver
tony2001
Это мои наблюдения, а не миф.
Считал, мерял секунды, чесал репу, снова мерял, создавал "тепличные условия" для теста, снова мерял, снова чесал репу, исключал время на парсинг, снова мерял, снова чесал репу.
Может конечно в моем подходе какая-то системная ошибка, и я ее не вижу.

Да, все это относится к 4-ке.
5-ку близко не смотрел, там ООП более другое
 

neko

tеam neko
а что в этом странного собственно?
на создание переменной тоже время уходит, это никого тут не удивляет?
 

svetasmirnova

маленький монстрик
neko
Я приводила тесты и результаты тут: http://phpclub.ru/talk/showthread.php?postid=409718#post409718
За что была виртуально бита demiurg
IntenT
Да, исключительно к 4-ке. Для меня самой сюрприз был как в 5-ке эти вещи работают. Но и в 4-ке "тормоза" такие, что спокойно можно ими пренебречь.

Дабы предотвратить последующие избиения ;) Люди! Расхождения незначительны: пользуйтесь чем удобнее ;-)
 

neko

tеam neko
ты сначала определись что именно ты хочешь сравнить с чем, и поехали...

вот например, тут товарищь интент писал про создание объекта
это очень хороший пример, прежде всего потому что он простой
с чем по твоему мнению это логично будет сравнивать?
 

IntenT

SkyDiver
насколько я понимаю, правильно вопрос должен звучать так:

При остальных равных условиях, в каком случае будут больше накладные расходы:
- При вызове функции / обращении к переменной
- При вызове метода класса / обращении к свойству экземпляра

Так?
 

neko

tеam neko
блин, ребят
неужели надо быть ученым, чтобы понять что

при вызове метода, на объекте надо как-минимум
1) найти переменную (объект)
2) найти в описании класса нужный метод
3) вызвать метод

при вызове функии мы делаем тоже самое, но мы не ищем объекта
это очень упрощенно, но это нас пока устроит

неужели это все не очевидно?
 
Сверху