Есть большой класс. Строк 10000, который еще наследуется от другого класса 10000 строк. Конструктора нет. И я хочу создать 10000 обьектов этого класса. Влияет ли на скорость сам процесс создания обьектов таких больших классов ? Я к примеру хочу разместить в базовом классе кучу библиотек и функций. и потом просто наследовать абсолютно все остальные классы от этого класса.
Не отвечаю на вопрос, но идея плохая. Смысл ООП в объекте, который обладает некими параметрами и что-то может делает. Чем меньше у него этих характеристик, тем проще будет находить проблемы или изменять их у конкретного класса. А если объект будет наследовать от "Божественного класса", то поддержание такого кода будет сомнительным удовольствием.
А ООП разве не для скорости и удобства? Бывает ли удобно работать с классом в 10000 строк, который наследуется от другого класса в 10000 строк?
тема переезжает в другой раздел. скорость за счет возможности сопровождения и "наплевать на ооп" это не соответствует разделу "Профи"
ну буквально размер на скорость если и влияет, то очень косвенно. так вслепую трудно рассуждать, но в топ косяков входят, пмсм: - дурные запросы в базу. - обращение к внешним API (особенно когда всё это в цикле) - чтение файлов через http, когда возможен прямой доступ к файловой системе и т.п. и таких косяков много когда код плохо спланирован и не читается. так что я бы предпочел много небольших классов с очевидным функционалом вместо одной универсальной мега-библиотеки или класса. ООП это больше чем слово class.
вот еще для размышлений о скорости: https://medium.com/@edouard.courty/make-your-php-8-apps-twice-as-fast-opcache-jit-8d3542276595
Никто не смог ответить, пришлось тестировать самому. аж 10 минут потратил. 2 класса. 1ый - 500 строк. 2ый - 20.000 строк Цикл - создать 100.000 обьектов Результат - разницы почти никакой.
Ответили, это 2 поста выше, перечитай очень внимательно. А вообще PHP старается по минимуму использовать ресурсы, например, когда объявляется функция он даже не смотрит, что внутри нее, а просто заносит имя функции в таблицу, ресурсы начинает тратить когда идет обращение к ней. Сюрприз, сюрприз, но все разработчики именно так и поступают, а если не могут решить проблему сами (для меня критерий 1-2ч, иначе что-то тут не так), то уже спрашивают совета.
А что ж изначально сам не побенчил? Интересно, что там с ужором памяти ещё и на каких версиях PHP бенчил.
Както лень. и не торопит. тут может еще накидают чего. php 8.1 Если 100.000 раз записывать в одну переменную типа $q=new obj(); Если обьект 500 строк, то 2 mb . Если 20.000 строк - 8mb . Т.е. скока 1 класс занимает столько и берет памяти. Если в массив: $q[$num]=new obj (); $num++; т.е. создать реально 100.000 разных обеьктов, то в обоих случаях сожрало около 100 мб. Тут память жрет сам массив на 100.000 элементов , а на обьект. Вообщем размер класса на скорость никак не влияет. ( совсем капелька есть конечно ). И на память не особо. И это восхитительно !
Тут хотя бы одну проперть им в уникальные значения поставить. И да, все наследники ни одного и того же класса?