performance - Сравнение скорости-Процедурный и OO в интерпретируемых языках



oop maintainability (5)

В интерпретируемых языках программирования, таких как PHP и JavaScript, каковы последствия перехода к объектно-ориентированному подходу к процедурному подходу?

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

Итог: насколько велика (если таковая имеется) производительность, действительно, при переходе с OO против процедуры на интерпретируемый язык?

https://ffff65535.com


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


Итог: нет, потому что накладные расходы на пересылку превышают накладные расходы на отправку метода.


Я на самом деле сделал небольшой тест, подобный этому на python на веб-сайте, который я поддерживаю, и обнаружил, что они почти эквивалентны по скорости, причем процедурный подход выигрывает примерно на десять тысяч единиц секунды, но код OO был настолько значительным чище я не продолжал упражнение больше, чем одна итерация.

Так что действительно, это не имеет значения (по-моему, в любом случае).


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

Просто запомните первое правило оптимизации.

Не.

:)


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

ООП требует гораздо больше выделения памяти (MALLOC) и намного больше операций для работы в памяти, чем процедурный код. Для выполнения своих задач требуется намного больше времени процессора. Это, по сути, «накладные расходы», обернутые процедурным кодом, добавляя к нагрузке на процессор для его выполнения, особенно при выполнении операций с базой данных.

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

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





interpreted-language