Бутылочное горлышко выгрузки товаров на сайт

Выгрузка данных на сайт стала работать медленно, не успевала до тайм-аута.

Решил сделать замер производительности и обнаружил «узкое» место:

Я зачем-то (для красоты видимо) добавлял выгрузку уровня элемента, на нем все и тормозило. Уровень при необходимости можно получать и в запросе, но я просто отключил его выгрузку, стало работать быстрее:

В общем, это классический «тормоз», когда идет получение реквизита объекта через точку. Только неявное, в вызове функции, среди таких функций еще, например ПолныйКод.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 42

  1. fedignat:

    Так просто, для понимания.

    > когда идет получение реквизита объекта через точку
    Это не так. Уровень элемента не хранится в базе. Он вычисляется запросом в БД, при вызове функции Уровень().

    > Уровень при необходимости можно получать и в запросе
    В языке запросов нет функции (или поля) Уровень.
    Можно сделать свою реализацию, но это сильно усложняет запрос и не всегда получается сделать универсально.
    Можно сгруппировать по иерархии и на этапе выборки вычислять по уровню выборки, но не всегда подходит.

    • а зачем универсально? через родитель.родитель.родитель и т.п. 😉

      • rzd:

        Точно. Говнокода должно быть много

        • Этой субстанции много в типовых в целом и в БСП в частности, если вы любитель.

          • rzd:

            Причем тут типовые и бсп? Говеокрдом названо твое предложение, ибо это говнокод

          • Тю… Вы возомнили себя критиком и судьей … Мимо. За качество моего кода голосуют клиенты рублем, а не анонимы в сети.

          • Serg:

            За продукты 1С голосуют рублëм, значит они качественные? Только не надо про монополию — рынок открыт, за 30 лет уж можно было альтернатив наплодить при острой необходимости.

          • не всегда монополия — признак качества. Иногда монополии прилагают много усилий чтобы топить конкурентов.

          • Serg:

            А как 1С затопила конкурентов? Были истории?

          • ну например с покупкой УНФ. или их эпичная война с Контуром и СБИС.

  2. Serg:

    То есть, ты подложил клиенту свинью, добавив ненужную штуку и не подумав о производительности?

    • «подложил свинью» это громко сказано.

      • Serg:

        А надо говорить тихо? Напоминаю, это результат работы человека, берущего 5000 р/час, именующего себя гением 1с, критиующего компанию 1с и считающего, что производительность это для условных ашанов (оказывается, нет).

        • буквоедство в 1С признак профнепригодности. вам не в 1С, коллега. Тут вы не добьетесь успеха.

          • Serg:

            Совет от человека, который не даëт непрошенных советов — очень ценно. Давай продолжим про твои «успехи». Расскажи, почему гений влепил ненужную вещь, не подумав о производительности?

          • ввиду отсутствия ТЗ, для автоматизации с колес это нормальное дело.
            я не могу все знать, тем более, что уровень не хранится в БД, а вычисляется на лету. мой гений не в эрудиции, а в практичности.

          • Serg:

            Втиснуть ненужную вещь с плохой производительностью — это практично и гениально?

          • обсуждать производственные мелочи — это глупо и не практично.

          • Serg:

            А мнить себя гением, занимаясь преимущественно мелочами — это умно?

          • я не мню себя гением, у меня просто такой ник.

          • Вова Соколовский:

            «я не мню себя гением, у меня просто такой ник.»

            Откуда такой ник взялся?

          • да как-то прилип из-за гениальных решений.

          • Serg:

            «мой гений не в эрудиции, а в практичности» — а это что? Про ник?))

          • это про ваше буквоедство. Больше практицизма, коллега!

          • Serg:

            Это не моë буквоедство, а твоë зазнайство и нежелание работать над ошибками. В общем-то, ты ведëшь себя как компания 1С — бабки зарабатываются, значит всё ок и не надо менять что-то. Только почему ты тогда критикуешь 1С?

          • ну я не монополист. и клиент выбирает меня среди прочих. аналогии хромают.

          • Serg:

            А если 1С удалось стать монополистом в честной борьбе, значит они всë правильно делают, не?

          • монополия всегда зло и деградация.

          • Serg:

            То есть компания должна себе конкурентов придумывать, что ли? Или государство должно обанкротить 1С? А может, платить тебе 6000 в час всегда зло и деградация?

          • в жизни нет понятия «должно». у государства есть ФАС, но он дремлет…
            следовательно, капитализм плохо регулируется государством. В итоге КПД общества понижается.
            И стоимость часа программиста повышается.
            Мне это хорошо, бизнесу не очень.

          • Serg:

            А что, 1С нарушает закон?

          • скорее ФАС у нас игнорирует 1С-монополию. А раз игнорирует, значит это кому-то нужно.

          • Serg:

            А что, разве у компаний нет выбора? 1С ведëт нечестную конкуренцию? А что должна сделать ФАС, инвестировать в F3 или что?

          • ну например заблокировать покупку УНФ компанией 1С и многое подобное.
            Не нужно учить ФАС работать, она это умеет. или должна уметь. если перекрыть «черное» финансирование ЛПР

          • Serg:

            Дык это, «в жизни нет понятия «должно»».

          • у закона есть понятие «должно»

          • Serg:

            А какую статью закона нарушила 1С?

          • я не юрист. Но за законом следит ФАС, должен по крайней мере

          • Serg:

            А почему ты считаешь, что не следит? Не юрист, но утверждаешь, что ФАС должна что-то там сделать в отношении 1С. На каком основании?

          • а я не в суде. это мое мнение.

          • Serg:

            Ты затрудняешься объяснить, на чëм основано твоë мнение?

          • Не вижу смысла в этой дискуссии. Мое мнение — это мое мнение.
            Кстати, можно было бы начать с привлечения 1с к ответственности за нарушение свободы конкуренции в ЭДО, когда она не пустила в 1С:ЭДО Контур и Сбис. Или это тоже «законно»?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *