За последние 24 часа нас посетили 11792 программиста и 1055 роботов. Сейчас ищут 368 программистов ...

Влияет ли размер обьекта на скорость .

Тема в разделе "Прочие вопросы по PHP", создана пользователем processsor, 19 янв 2023.

Метки:
  1. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    Есть большой класс. Строк 10000, который еще наследуется от другого класса 10000 строк.
    Конструктора нет.

    И я хочу создать 10000 обьектов этого класса.

    Влияет ли на скорость сам процесс создания обьектов таких больших классов ?

    Я к примеру хочу разместить в базовом классе кучу библиотек и функций. и потом просто наследовать абсолютно все остальные классы от этого класса.
     
  2. dantemgs

    dantemgs Новичок

    С нами с:
    24 дек 2022
    Сообщения:
    43
    Симпатии:
    8
    Не отвечаю на вопрос, но идея плохая. Смысл ООП в объекте, который обладает некими параметрами и что-то может делает. Чем меньше у него этих характеристик, тем проще будет находить проблемы или изменять их у конкретного класса. А если объект будет наследовать от "Божественного класса", то поддержание такого кода будет сомнительным удовольствием.
     
  3. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    Это ясно. я для примера привел.

    p.s. И на ооп плевать. Главное скорость и удобство для меня.
     
  4. romt

    romt Новичок

    С нами с:
    26 ноя 2020
    Сообщения:
    5
    Симпатии:
    0
    А ООП разве не для скорости и удобства?

    Бывает ли удобно работать с классом в 10000 строк, который наследуется от другого класса в 10000 строк?
     
  5. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    Вопрос про скорость , а не удобство.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    10.871
    Симпатии:
    1.187
    Адрес:
    там-сям
    тема переезжает в другой раздел. скорость за счет возможности сопровождения и "наплевать на ооп" это не соответствует разделу "Профи"
     
  7. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    согласен
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    10.871
    Симпатии:
    1.187
    Адрес:
    там-сям
    ну буквально размер на скорость если и влияет, то очень косвенно. так вслепую трудно рассуждать, но в топ косяков входят, пмсм:
    - дурные запросы в базу.
    - обращение к внешним API
    (особенно когда всё это в цикле)
    - чтение файлов через http, когда возможен прямой доступ к файловой системе
    и т.п. и таких косяков много когда код плохо спланирован и не читается. так что я бы предпочел много небольших классов с очевидным функционалом вместо одной универсальной мега-библиотеки или класса. ООП это больше чем слово class.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    10.871
    Симпатии:
    1.187
    Адрес:
    там-сям
  10. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    Никто не смог ответить, пришлось тестировать самому. аж 10 минут потратил.

    2 класса. 1ый - 500 строк. 2ый - 20.000 строк
    Цикл - создать 100.000 обьектов

    Результат - разницы почти никакой.
     
  11. dantemgs

    dantemgs Новичок

    С нами с:
    24 дек 2022
    Сообщения:
    43
    Симпатии:
    8
    Ответили, это 2 поста выше, перечитай очень внимательно. А вообще PHP старается по минимуму использовать ресурсы, например, когда объявляется функция он даже не смотрит, что внутри нее, а просто заносит имя функции в таблицу, ресурсы начинает тратить когда идет обращение к ней.
    Сюрприз, сюрприз, но все разработчики именно так и поступают, а если не могут решить проблему сами (для меня критерий 1-2ч, иначе что-то тут не так), то уже спрашивают совета.
     
    #11 dantemgs, 24 янв 2023
    Последнее редактирование: 24 янв 2023
  12. don.bidon

    don.bidon Новичок

    С нами с:
    28 мар 2021
    Сообщения:
    598
    Симпатии:
    96
    А что ж изначально сам не побенчил? Интересно, что там с ужором памяти ещё и на каких версиях PHP бенчил.
     
  13. processsor

    processsor Новичок

    С нами с:
    29 янв 2022
    Сообщения:
    17
    Симпатии:
    0
    Както лень. и не торопит. тут может еще накидают чего.

    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 элементов , а на обьект.

    Вообщем размер класса на скорость никак не влияет. ( совсем капелька есть конечно ). И на память не особо.

    И это восхитительно !
     
  14. don.bidon

    don.bidon Новичок

    С нами с:
    28 мар 2021
    Сообщения:
    598
    Симпатии:
    96
    Тут хотя бы одну проперть им в уникальные значения поставить. И да, все наследники ни одного и того же класса?