• Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    galliard, да, верно, но и Exception на самом деле не замедляют работу.
    Запускал с xdebug profiler - и, внезапно, 15 тысяч exception никак не тормозят обработку.
    В общем, там что-то странное.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Максим Федоров,
    удивилися или не удивился — не имеет значение, имеет значение график профайлера

    А как тебе такое:
    walk@home:/var/www/oos-dev/sites/api-purchases$ s app:get-sales-price
    Received 2021-11-15 15:39:41
    Memory limit: -1
    Json size: 892.1 kb
    [2021-11-15 15:40:58] Error: {"1":"Product с articleNumber 101206 не найден","2":"Product с articleNumber 605549 не найден","3":"Product с articleNumber 322288 не найден","4":"Product с articleNumber 322288 не найден","5":"Product с articleNumber 322288 не найден","6":"Product с articleNumber 322679 не найден","7":"Product с articleNumber 322679 не найден","8":"Product с articleNumber 101206 не найден","9":"Product с articleNumber 999810 не найден","10":"Product с articleNumber 999810 не найден","11":"Product с articleNumbe...
    Общий расход памяти: 10.96 mb
    Расход памяти на обработку: 8.67 mb
    ----------------------------------------->>>
    walk@home:/var/www/oos-dev/sites/api-purchases$ XDEBUG_CONFIG=profiler_output_name=sales_price XDEBUG_MODE=profile s app:get-sales-price
    Received 2021-11-15 15:41:36
    Memory limit: -1
    Json size: 892.15 kb
    [2021-11-15 15:41:37] Error: {"1":"Product с articleNumber 355212 не найден","2":"Product с articleNumber 605549 не найден","3":"Product с articleNumber 355212 не найден","4":"Product с articleNumber 101206 не найден","5":"Product с articleNumber 101206 не найден","6":"Product с articleNumber 355212 не найден","7":"Product с articleNumber 322288 не найден","8":"Product с articleNumber 322288 не найден","9":"Product с articleNumber 322645 не найден","10":"Product с articleNumber 322288 не найден","11":"Product с articleNumbe...
    Общий расход памяти: 10.96 mb
    Расход памяти на обработку: 5.52 mb
    ----------------------------------------->>>

    Объем данных одинаковый. Количество записей в логах в базе - тоже. В коде ничего не менялось. А разница по времени...
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Максим Федоров,
    А вот это обидно, так как именно я на это указал в своем ответе и тут вам разные люди пытаются просто это разжевать :(

    Не важно, потому что в файл ничего не логируется - проверил. Это и логично, потому что все исключения перехватываются на более высоких уровнях.

    Тимлиду показал - он тоже удивился, что исключения так замедляют, а без них все быстро. И он тоже не смог понять, в чем именно причина. В общем, будет загадка на перспективу - воспроизвести ситуацию, чтобы исключения сильно замедляли обработку скрипта.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Виталий Хоменко,
    Тяжело с таким подходом развиваться, но дело ваше

    Мне кажется, или вы с разговора без аргументов переходите уже просто на попытки как-то уязвить? Детский сад какой-то.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Армянское Радио,
    извините, вы сделали не тюнинг, а то, что Барт на доске написывает

    Извините, но то, что я написал в вопросе (а там и решение и проверка на практике) было написано до появления любого ответа в этой теме.

    И я опускаю то, что посыл отказа от исключений в принципе, который тут пропагандируют - это плохой подход.

    вероятнее всего, форсированно пишется на диск.

    Сомневаюсь, но в понедельник проверю.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Виталий Хоменко,
    вы хотите решить проблему или нет?

    Если вы не заметили (перечитайте вопрос еще раз) - я её уже решил. А сюда зашел послушать другие варианты. На что получаю ответы "ты не шаришь, надо делать так", и предлагают то, к чему я уже сам пришел.

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

    Аргументы "этого не может быть потому что не может быть" - не аргументы.

    P.S.
    Если у вас там тысячи записей в логи, то скорее всего именно они являются причиной

    Уже писали и уже отвечал - все нормально, 15 тысяч записей записывается в базу за 2 секунды.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Ипатьев, ваша проблема в том, что вы пишите мне о том же, о чем я сам написал в вопросе, но подаете это так, будто я не шарю, и вот как надо.

    Я задал здесь вопрос не для того чтобы услышать вывод, к которому сам пришел и уже проверил, а другие варианты.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Армянское Радио,
    Если 15к - код от разработчиков Симфонии не пролезет без тюнинга механизма обработки исключений.

    И в вопросе написал, что уже пришел к варианту тюнинга, который решает проблему, но интересно послушать другие варианты.

    На что получаю какие-то камни в свой огород, со словами что я должен сделать... тоже, о чем и написал в вопросе.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    https://github.com/symfony/symfony/blob/5.4/src/Sy...

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

    @HellWalk Автор вопроса
    Процитирую себя:

    15000 позиций (все с ошибками) - 375 сек.

    Если переделать валидацию с Exception на простую проверку строки:

    ...

    То тот же json с 15 тысяч позиций, с ошибками в каждой обрабатывается за те же 2 секунды.


    Если вы с такой ситуацией не сталкивались - это не значит, что она не может существовать в принципе.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Максим Федоров,
    Логирвоание исключений вам замедляют... сами исключения не замедляют

    На основании чего сделан такой вывод?
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Vitsliputsli, мне не интересно сейчас спорить по поводу терминов.

    Для меня удаление 99 из 100 Exception в коде - это удаление exception. Для кого-то это "правильное использование" (хотя для меня это костыли), сути правок не меняет.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Saboteur, вы говорите о том же, о чем я уже написал - об отказе от Exception
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Уйдя от исключений вы возможно ушли и от логирования исключений.

    Логирование делается, перепроверил.

    Я не стал в вопросе погружать по все тонкости обработки. Для оптимизации там уже была выброшена ORM, добавлены свои псевдо-сущности, которые группировали insert'ы в базу (что также сильно ускоряет обработку) и прочие оптимизации. Сейчас вот до отказа от Exception дошло.

    Если говорить о том, почему ваш пример отрабатывает быстро... возможно дело в цепочках исключений - когда исключение бросает один класс, потом его перехватывает другой и так по цепочке. Плюс сам stack trace видимо большой.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Ипатьев,
    Вы так привязались к слову валидация, а что если я сказал это для простоты, чтобы не вываливать на читающего всю сложность логики?
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Ипатьев,
    Ещё вопросы будут?

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

    Плюс, я вижу, как вы мой вывод об отказе от исключений, подаете как своё умное новое мнение. Спасибо, я уже догадался, что чем больше исключений, тем дольше все обрабатывается.

    Но отказ от стандартных исключений везде где они нужны - это будет как раз вынужденный костыль, ради быстродействия.
  • Как можно ускорить работу Exception?

    @HellWalk Автор вопроса
    Что за бред я только что прочитал?

    Исключение может кидаться ОДНО. В самом конце.

    Может еще и логику всего приложения в одном файле писать?

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

    @HellWalk
    Что лучше? Пойти в 17-18 лет на работу и на заочку, или так и остаться на фрилансе.

    Вопрос некорректен - непонятно, сколько вы получаете на фрилансе, что за работа, что за обучение.

    В любом случае чувствуется перекладывание ответственности за свою жизнь на кого-то. Уже пора самому решать. Советчиков, конечно, много вокруг - но хотите ли вы портить свою жизнь следуя чужим советам? На мой взгляд, лучше своей головой подумать и принять решение, чтобы если и ошибаться - то на своих ошибках, а не на чужих "полезных" советах.
  • Как правильно создать систему уровней для игроков в браузерной онлайн игре?

    @HellWalk
    Абрам Петерс,
    В моем примере ошибки нет. Если ошибка в вашем коде - публикуйте код, потому что не видя ни кода, ни ошибки помочь невозможно.
  • Что происходит на рынке труда в айти?

    @HellWalk
    Курсы-курсам рознь.

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

    Как-то отлично прокачал понимание MVC-фреймворков + написал свой простой MVC-фреймворк после просмотра такого бесплатного видео-курса на ютубе.