Скорость с ООП и без

123 4
Master812
На сайте с 23.12.2007
Offline
168
1531

Я тут вот о чем подумал:

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

Есть же такая функция include. Может вместо создания классов просто выделять все фунции в отдельные файлы и подключать их по мере надомности?

А в менее сложных случаях может вообще обойтись без фунций а выделать в отдельные файлы участки простого кода. Какое у Вас мнение по этому поводу?

Как сильно измениться скорость работы (в процентах) если вместо классов и функций воспользоваться таким методом?

Конечно, это касается не только php но и все остальные языки.

raspberry pi сайт ( https://4raspberrypi.ru/ ) и orange pi сайт ( https://orangepi.su/ ) и новостной движок ( https://generalscript.ru/ )
B
На сайте с 21.12.2009
Offline
28
#1

Собственно, в большинстве больших приложений, используется модель MVC.

И там как раз и реализуется то о чем вы говорите, в зависимости от параметров, обрабатывается не все приложение, а лишь нужная для этого часть и если ресурсов сервера не хватает уже на кол-во пользователей, которое работает с приложением, то зачастую увеличивают число и производительность машин, а не оптимизируют код , выигрывая при этом 1-2% скорости.

(Конечно некоторые функции можно сильно оптимизировать , но такое бывает редко, так как большие приложения, в большинстве своём, разрабатывают хорошие кодеры, и врядли они изначально сделают код который будет очень сильно тормозить).

Так же есть еще 1 большой нюанс, чем больше приложение, тем более понятно оно должно быть написано. И за частую, исходя из этого соображения, скрипты раздуваются свободно на 50% и более , только ради удобочитаемости в урон производительности.

Кстати есть еще и оптимизаторы кода для того же пхп, которые переводят исходный код, в непосредственный байт код.

Они тоже бывают разные, некоторые могут повысить эффективность программ на 50% и более, но взамен требуют чтобы в коде например не было конструкций типа eval или например динамически создаваемых переменных.

Адский Кодер Разработка и аудит безопасности сайтов/скриптов(PHP+MySQL) (/ru/forum/530575)
[Удален]
#2

скажу просто - 1 запрос в базу сравняет и перегонит в сотню раз ооп код и процедурный. такое срвнение вас убедит? :)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3
Master812:
В сложных и больших скриптах без создания классов и функций практически не обойтись.

ничем не обоснованное утверждение.

Master812:
Конечно, это касается не только php но и все остальные языки.

нет. каждый язык (вернее транслятор/компилятор/интерпритатор) реализует свой механизм.

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

ТС, вы просто, на мой взгляд, слишком мало знаете чтобы строить далеко идущие выводы. не насилуйте мозг. идите как все - по волнорезу. когда появится опыт, хотя бы, 10 лет работы - ответ придет сам.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
S
На сайте с 23.05.2004
Offline
315
#4

include тоже не дешевая функция в плане процессорного времени. И использование ее вместо классов и функций, точно уж не даст экономии , а выйдет даже наоборот.

Это просто подпись.
Master812
На сайте с 23.12.2007
Offline
168
#5
нет. каждый язык (вернее транслятор/компилятор/интерпритатор) реализует свой механизм.
если говорить о компиляторах, то, на выходе, все равно будет бинарник/пи-код. независимо что там было в тексте...

T.R.O.N, это я знаю. Извиняюсь, неправильно выразился в начале. Я имел ввиду все языки веб-программирования.

ничем не обоснованное утверждение.

T.R.O.N, согласен. Но большинство все же использует ООП для создания больших и сложных скриптов. Даже во многих книжках написано, что создавать большие скрипты удобнее с ООП, иначе через какое-то время вы уже подзабудете структуру своего кода и вам будем сложнее в нем разобраться.

Кстати есть еще и оптимизаторы кода для того же пхп, которые переводят исходный код, в непосредственный байт код.

boodda, а вот с этого момента можно по-подробнее. Как так перевести пхп в бинарный код?

VoV@
На сайте с 22.09.2007
Offline
196
#6

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

Скорее всего своими манипуляциями Вы превратите код в нечитаемый, и соответственно его будет очень трудно сопровождать.

⭐ Разработка Андроид-приложений (Xamarin C#). ⭐ Разработка ASP.NET (WebForms, MVC, WebAPI, Core). ⭐ Цой жив!
[Удален]
#7
Master812:
иначе через какое-то время вы уже подзабудете структуру своего кода и вам будем сложнее в нем разобраться.

ага, а ооп не забудете :-D

можно подходить "через зад", можно нормально, в нормальнйо ситуации ооп или не ооп без разницы по сути, просто ооп удобнее вот и все.

bearman добавил 05.08.2010 в 16:26

VoV@:
Современные компиляторы/интерпретаторы очень хорошо оптимизируют результирующий код
VoV@:
.NET developer

не путайте с пхп ))))))))))))))))))))))))))))

VoV@
На сайте с 22.09.2007
Offline
196
#8

bearman, ничего я не путаю

Конечно, это касается не только php но и все остальные языки.

с пхп тоже всё хорошо

ЗЫ кстати а Вы в курсе как дотнет обрабатывает пхп? ;)

[Удален]
#9
VoV@:
ЗЫ кстати а Вы в курсе как дотнет обрабатывает пхп?

сурово, до чего дошел прогресс :-D

можно ссылочку на почитать? даже не слышал про поддержку пхп в дот.нет

или это просто встраиваемый скриптовый язык аля встраиваемые python в яве и тп?

VoV@
На сайте с 22.09.2007
Offline
196
#10

ПХП поддерживается как надстройка для вижлстудии.

Сходу могу дать вот это от сторонних разработчиков:

http://visualstudiogallery.msdn.microsoft.com/ru-RU/F5CFBE65-D843-4C96-8F24-2C169676504C

http://www.php-compiler.net/doku.php?id=core%3astart

Там даже сильверлайт на пхп. :D

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий