фев 18, 2013 - http://en.wikipedia.org/wiki/Diff Это к чему?
|
|
фев 18, 2013 - Это было сделано для того, чтобы очередь не отжирала всю память. Это понятно. Вызов я не отменил, а заменил его пинанием таймера. Помимо этого есть режим MaxMessages=-1 когда логирование идет синхронн...
|
|
фев 18, 2013 - В классе стратегии есть метод снятия всех активных заявок. Он вроде бы производит безопасный внутренний лок для коллекции информации по заявком, не доступной извне. (почему бы не сделать поля protecte...
|
|
фев 18, 2013 - Изменил буфер сообщений на конкурентную очередь, убрал все локи, принудительный запуск логирования заменил перещёлкиванием таймера. Последнее исправление не тестировал.
|
|
фев 18, 2013 - Кстати. У LogManager есть такой косяк: когда количество сообщений превышает заданный максимум (т.е. как раз когда система очень сильно нагружена), логирование запускается в потоке вызова.
|
|
фев 17, 2013 - Грубо говоря, детерминированность - это сложность алгоритма (не путать со сложностью кода). А реальное время - это гарантия скорости. Не понимаю как, "однозначность" завязана на "сложность" или на "ск...
|
|
фев 17, 2013 - PS Если это и имелось в виду под детерменированностью, то должен огорчить: Windows - не система реального времени, поэтому точность StopWatch хоть и выше, но всё равно не идеальна. При этом и то, и др...
|
|
фев 17, 2013 - Дело в не скорости исполнения, а в том, что в отличие от StopWatch, DateTime.Now - это недетерминированная операция. Тоесть время может быть и практически мгновенным, а может и залипнуть на пару секун...
|
|
фев 17, 2013 - Между определением Now и замером Start может пройти некоторое время. Эта погрешность будет потом тянуться в течении всей жизни приложения. 10000000 запусков в цикле - 1.12 с Можно считать, нет погрешн...
|
|
фев 17, 2013 - Ага. Понял. Пишет пачками по таймеру (вспомнил, почему у меня пропадало сообщение о завершении работы). И всё-таки лочит основной поток при добавлении сообщения в список. Очередь была бы производитель...
|