8.х Как вычислить время за которое проводится документ?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем НиколайН, 18 сен 2014.

  1. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Подскажите пожалуйста, есть ли какие-нибудь средства мониторинга, которые показывают сколько тратится времени на проведение документа?

    Стандартные механизмы оценки производительности я знаю, но они не показывают сколько конкретно тратится времени на проведение, они лишь показывают коэффициент относительно эталонного времени. А мне нужно чтобы показывало допустим что документ "Заказ покупателя" провёлся за 4,5 сек.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    эээээ....только если вставить код таймера в нужные места в процедуре "ОбработкаПроведения" документа
  3. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.982
    Симпатии:
    398
    Баллы:
    104
    Стандартных средств нет. Только замер производительности.
    --- Объединение сообщений, 18 сен 2014 ---
    Что означает это "ээээээ....."?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    я таким образом обозначаю свой мыслительный процесс :)
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    А чем стандартный замер производительности не устраивает?
  6. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.982
    Симпатии:
    398
    Баллы:
    104
    Я вот, например, сейчас занимаюсь как раз почти тем же самым. Замер нормально отрабатывает :)
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну вот и я спрашиваю, что не устраивает
  8. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Занимаюсь сейчас оптимизацией, а руководство хочет конкретики. Какое время тратиться на проведение до оптимизации и после оптимизации.
    --- Объединение сообщений, 18 сен 2014 ---
    А не подскажите приблизительный код таймера. Никогда с этим не имел дело!
  9. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    проще аналогом GetPerformanceCounter из 7.7
    http://programmist1s.ru/1s-vremya-v-millisekundah/
  10. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.982
    Симпатии:
    398
    Баллы:
    104
    Не изобретайте велосипед. Ставите точку останова на самой первой строке кода процедуры обработка проведения. Как отладчик сработает нажимаете Отладка -->Замер производительности. Ставите точку останова на фразе КонецПроцедуры и продолжаете процесс отладки. Как управление перейдет на последнюю строку опять жмете Замер производительности. Там уже все будет видно. Сколько потрачено и на что.
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну замером производительности делайте все и сохраняйте данные, кто вам мешает. Ну или делайте копии базы. в которых потом сможете продемонстрировать.
    Только учтите особенности КЭШИРОВАНИЯ. у Вас базы какие файловые или серверные. Если серверные то учтите что документ после первого проведения дает одни данные, а после повторного его же другие т.к инфа по выборке иже в лог файле есть и он ее оттуда тянет. Ну это все из области как правильно тестить - это уже другой вопрос.
    А стандартный замер вам выдаст все что надо и покажет на каких именно процедурах вы выйграли, а если не выйнграли то почему вы там не можете оптимизировать
  12. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    на базах которые на поддержке - однозначно через "Замер производительности"
  13. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Кстати, если есть много лишних денег, то можно конечно и КИП купить и им тогда уже полный анализ с отчетностью .все как Вы хотите
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Если хочется все же велосипеда, то их есть у меня :)
    Код:
    мЯваСкрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
    мЯваСкрипт.Language = "javascript";
    
    ВремяНачала = мЯваСкрипт.Eval("(new Date()).valueOf()");
    дальше, думаю, сами сообразите, что нужно сделать, чтобы получить время выполнения
  15. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну и как это фигня поможет ему если он напишет ее между началом обработки проведения и окончанием. Там же в обработке будет вызов кучи процедур и функций из других модулей и он не поймет где именно идет затык.
    Так что берите стандартный замер и не трогайте конфу
    --- Объединение сообщений, 18 сен 2014 ---
    И можно было не извращаться так а
    в начале написать
    Сообщить(ТекущаяДата())

    и в конеце то же самое
  17. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    ну я ж сказал, что это обычный ВЕЛОСИПЕД :)
    я с вами полностью согласен, но ТС, по всей видимости, хочет сразу видеть продолжительность выполнения между временем начала и временем окончания, его не инетересует, на что тратится время внутри процедур и функций, он хочет видеть так сказать ТОТАЛ :)
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Идеи накидали - выбирайте
  19. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    И мои пять копеек. Не согласен что какой либо код даст Вам более менее правильное осознание сколько времени проводится документ. Дело в том что ОбработкаПроведения это всего лишь одна часть операции, не забудьте что фиксация набора данных может очень сильно замедлять процесс записи документа, и как следствие замедляется для пользователя весь процесс. Оптимизация текста без оптимизации самой базы данных может не привести к желаемому результату.
    Моё мнение таково, подобными вещами имеет смысл плотно заниматься только при наличии сервера, т.к. нагрузки самого жесткого на чтение/запись нужно проверять, скорость секторов, наличие бадов, и при всём этом тяжело сделать выводы о производительности.
    При наличии сервера можно использовать
    • SQL Server Connect Time (usec) – время подключения к SQL серверу.
    • SQL Operation Time (usec) – время выполнения SQL операции.
    • Total Transaction Time (usec) – полное время выполнения тестовой
    транзакции.
    Возможны два варианта кастомизации теста:
    ƒ Простая кастомизация.
    ƒ Расширенная кастомизация.
    При простой кастомизации изменяется только тип выполняемого SQL запроса. SQL
    запрос, установленный в тесте по умолчанию, заменяется на SQL запрос, специфичный
    для конкретного бизнес-приложения.
    При расширенной кастомизации изменяется не только SQL запрос, но и логика работы
    теста, например, добавляются новые метрики. Для реализации второго варианта
    кастомизации необходимо знание языка VBScript.
    При этом мы уже можем делать конкретные выводы, т.к. в тест попадает весь процесс на сторону сервера, как само проведение так и фиксация транзакции, может остаться только одна проблема - сеть, ну тут тоже есть свои решения, ни кто не запрещает выполнить пинг своего сервера и проверить пороговые значения с клиентских машин.

Поделиться этой страницей