#347 closed баг (fixed)
При обработке события ESL программа портебляет слишком много процессорного времени
Reported by: | san | Owned by: | dimag |
---|---|---|---|
Priority: | blocker | Milestone: | 1 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | CPU load |
Cc: | alx |
Description
На мой взгляд стоит обратить внимания на алгоритм обработки событий, явно не должны присутствовать такие "пики" потребления процессорного времени программой.
Картинка зафиксирована на ноутбуке (процессор достаточно мощный: Celeron N2830@2.16 GHz, двухядерный, ОС Windows 10)
Расшифровка подписей на картинке:
1."Простой" - пользователь и ещё один абонент в диспетчерской - ничего не происходит.(8-15%)
- Активно переключаюсь между вкладками программы, перемещаю селекты, провоцирую многократные перерисовки (10-20%)
- Каждый пик - событие mute или unmute у произвольного абонента (до 60%)
- Удаляю пользователя из Диспетчерской, диспетчерская закрывается, затем автоматически туда добавляется пользователь и ещё абонент (до 80%)
- Создание новой конф, затем добавление в неё абонента.
Attachments (1)
Change History (10)
by , 8 years ago
Attachment: | bug0829-1.png added |
---|
comment:1 by , 8 years ago
Cc: | added |
---|
comment:2 by , 8 years ago
comment:3 by , 8 years ago
- На самом деле, связь прожорливости с событиями ESL предположил я. Как минимум, прожорливой программа становится именно в тот момент, когда появляется событие.
comment:4 by , 8 years ago
Часть проблемы Дима обнаружил. По словам Димы это было связяно с выводом сообщений в Журнал.
В результате исправления пиковая загрузка CPU уменьшилась до 20-40%(зоны 3,4,5 на картинке).
comment:6 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:7 by , 8 years ago
заменил текст редактор QTextEdit на QPlainTextEdit, запретил вывод списка пользователей, конференций, пользователей конференции до полного обновления содержимого соотвествующих списков.
comment:8 by , 8 years ago
Milestone: | Текущее → 1 очередь |
---|
comment:9 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Так как старый код, взаимодействовавший с FS и обрабатывавший приходящие из FS события (классы ESL, Commands, Events) полностью удален из проекта, полностью переписан код, выводящий списки конференций, пользователей, записей и т.п. (старым остался только код редактирования пользователей), этот тикет можно считать неактуальным (см. r725). Заркываю его с резолюцией fixed, так как, вероятнее всего, новый код не будет иметь проблем, связанных с производительностью.
Если к новому коду будут какие-то нарекания, создавайте, пожалуйста, новый тикет.
У меня есть два, пожалуй, риторических вопроса.