Тема: -
-
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
-
message() долгая из-за того, что обращается к визуальным элементам Windows. Для скорости таки логирование - куда более подходящий вариант.
Если бы message() было сделано через PostMessage() - это бы не спасло ситуацию в том смысле, что просто основной поток был бы завален сообщениями от message(), т.е. все равно корректно терминал не работал бы.
-
-
Опять же, можно напрямую работать с файлами, как это можно видеть "в скриптах из интернетов", а можно "постить" их (логи) в отдельный thread (сервер, БД, etc), который уже сам будет всё разруливать и не засирать рабочий цикл.
Если лог-файл однократно открывается при старте скрипта, а по завершению закрывается, то запись в файл не будет слишком ресурсоёмкой. По крайней мере, удовольствие задействовать дополнительный процесс (сервер) для передачи логов - весьма сомнительна, и вряд ли более "выгодно", чем запись в файл.
А запись в БД ещё более "тормозная", чем message. Хотя, конечно, message обычно используется не для логирования, а для информирования пользователя о каких-то важных событиях.
-
sam063rus,
форум посещаете не только вы, возможно, кому-то какое-то мнение будет интересно.
Более того, конструктивные предложения и те или иные результаты исследований, а также их конструктивное обсуждение, считаю, идёт всем исключительно на пользу.
-
Что касается времён - то мне видится так: всё сильно зависит за какие именно величины мы боремся в каком-то нашем конкретном случае.
Одно дело бороться за десятки миллисекунд, другое дело - за единицы миллисекунд, еще совсем другое - за десятки микросекунд.
В каждом из этих случаев сильно разные ожидания в скорости работы разных процессов и, главное, разные ожидания к неожиданным всплескам задержек. По моему, это основное.
Например: пишем мы лог в файл и радуемся. Всё работает более чем хорошо и быстро.
Но в продакшене (если речь в нашем конкретном роботе про требующуюся высокую скорость реакции, которую мы контролируем) вдруг иногда выскакивают задержки. Причем именно иногда.
Наверняка они будут связаны с том, что кэш диска когда-то будет таки заполняться, плюс занятость диска другими процессами (если они есть и интенсивны) - и поэтому именно иногда мы будем получать неожиданные выплески тормозов в реакции на событие, где мы хотели отреагировать быстро. Видимо, тут нам придётся менять архитектуру логирования, которая избавляла бы нас от таких проблем. Правда спастись мы можем только с честным многоядерным процессором.
Вы же, sam063rus, проводили эксперимент на одноядерном процессоре, я верно вас понял?
И еще, кстати. Могли бы вы сказать, какие выводы для себя вы сделали из этого эксперимента?
-
to Admin, Вам было предложение забанить меня.
Я думаю, что если вы желаете ничего не писать - то вы с этим сможете справиться самостоятельно, поэтому не вижу надобности в таком действии. Однако надеюсь, что вы измените своё мнение.
sam063rus,
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум работает на PunBB, при поддержке Informer Technologies, Inc