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

tony2001

TeaM PHPClub
Это мои наблюдения, а не миф.
Считал, мерял секунды, чесал репу, снова мерял, создавал "тепличные условия" для теста, снова мерял, снова чесал репу, исключал время на парсинг, снова мерял, снова чесал репу.
Может конечно в моем подходе какая-то системная ошибка, и я ее не вижу.
это всё хорошо, но где же сами тесты? =)
и с чем, простите, ты сравнивал?
насколько я понимаю, "замедление" может быть только по сравнению с чем-то, так?

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

neko

tеam neko
IntenT
ну а если так, то что ты репу то чесал 5тю постами выше? ;-)
тебе что удивило то, что экземпляр класса создать это дольше, чем переменную? ;-)
 

svetasmirnova

маленький монстрик
neko
Вообще-то это непростой пример. Создание объекта логично сравнивать с определением переменной, а можно и с вызовом функции. Причём можно видеть логику и в первом и во втором.
IntenT
>При вызове функции
a(100)
>При вызове метода класса
$b->a(100)

Ага, уже что-то: про переменные и свойства забыла

-~{}~ 11.03.05 00:13:

neko
>при вызове функии мы делаем тоже самое, но мы не ищем объекта
Блин, но результаты такие откуда? Я думаю, что п. 2 vs ищем функцию в глобальном пространстве имён.
 

tony2001

TeaM PHPClub
при вызове метода, на объекте надо как-минимум
1) найти переменную (объект)
2) найти в описании класса нужный метод
3) вызвать метод
на самом деле всё даже чуть сложней.
например, перед вызовом нужно проверить доступ к методу в зависимости от того, где мы находимся сейчас и как вызывается метод (static/private/public).

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

ребят, я в курсе, что есть некоторая плата, но это экономия на спичках в чистом виде.
и главное - никаких "тормозов" ведь.
 

IntenT

SkyDiver
neko
Я когда думаю - всегда репу чешу )

тебе что удивило то, что экземпляр класса создать это дольше, чем переменную? ;-)
нет, нисколько. удивило бы, если б было наоборот.

И фразу tony2001 "миф" расценил именно как такое утверждение.

tony2001
это всё хорошо, но где же сами тесты? =)
Небуду я их тут постить. мне потом стыдно станет

и с чем, простите, ты сравнивал?
насколько я понимаю, "замедление" может быть только по сравнению с чем-то, так?
Сравнивал вызов метода экземпляра класса с вызовом функции
 

neko

tеam neko
кстати моя "упрощенная модель" совершенно ясно ведет к тому, что методы будут вызываться быстрее функций
доупрощался типа :Р

tony2001
я кстати, нигде и не предлагал экономить
 

svetasmirnova

маленький монстрик
tony2001
>и главное - никаких "тормозов" ведь.
А как бы ты это доказал?
 

Screjet

Новичок
[offtop cause="т.к. тема несерьезная"]
перед вызовом нужно проверить доступ к методу в зависимости от того, где мы находимся сейчас и как вызывается метод (static/private/public).
..нужно както ускорять этот момент..
Может завести структуру массивов указателей на хеши свойств/методов для областей видимости, при вызове напрямую обращаться к нужному хешу, а при столкновении с ошибкой
(напр. свойство недоступно для области видимости), проверять флаг видимости..
[/offtop]
 

Orlis

Guest
ООП подразумевает наследование от иерархии классов т.е. для того чтобы выполнить конкретный скрипт, нужно отпарсить все родительские классы и то, от чего они зависят, PEAR это сотни килобайт кода в десятках библиотечных файлов, не имеющих прямого отношения к конкретной ситуации.

Вот это и есть тормоза.
 

svetasmirnova

маленький монстрик
Orlis
1. OOP != PEAR
2. OOP не значит использование громоздких библиотек
3. В PHP5 существует функция __autoload
 

Макс

Старожил PHPClub
Orlis
именно для этого и сделали всякие акселераторы пхп-кода
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Orlis
ООП подразумевает наследование от иерархии классов т.е. для того чтобы выполнить конкретный скрипт, нужно отпарсить все родительские классы и то, от чего они зависят, PEAR это сотни килобайт кода в десятках библиотечных файлов, не имеющих прямого отношения к конкретной ситуации.

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

А если ты утверждаешь, что где-то в PEAR такое делается насильно, то неплохо бы указать конкретное место.
 

N9

Новичок
правильное проектирование? что понимается под этой фразой... для меня всегда верхом совершенства программерской мысли и использованием ООП остается Invision board - при частом обращении и большой нагрузке - он всегда ведет себя стабильно
 
Сверху