Проверил использование CPU браузером. Не могу сказать, что браузер БАС дает больше нагрузку чем обычный.
Что пробовал:
- Смотрел отчет по процессору в разных потоках. Основная нагрузка приходится на браузерные потоки. Примерно 20-30% от общей нагрузки процесса приходится на один поток, который создает БАС. В нем есть вызов CefDoMessageLoopWork, функции, которая обрабатывает все, что связанно с браузером. Стал вызывать ее реже и нагрузка упала до 5%. Выборочно смотрел стек, все после CefDoMessageLoopWork не мой код. Есть вероятность, что иногда из этой функции вызывается и мой код, который и дает нагрузку на проц, поэтому идем дальше.
- Запускал профайлер sleepy, отчет показал, что больше всего времени тратится на создание потоков. Браузер действительно часто любит создавать и убивать потоки, возможно это может стать вариантом для оптимизации, но не факт, что я смогу изменить это поведение. БАС точно не создает потоки динамически.
- Сделал простой проект, который водит мышью по странице в БАС и сделал тоже самое в стандартном браузере CEF руками. Результаты для БАС 1-3%, для CEF ~ 2.4%. Иногда и CEF и BAS скачут до 5%. Но это бывает редко.
- Начал редактировать код, убрал все места, которые могут давать нагрузку. Лок потоков, вычисление координат мыши, абсолютно все что связанно с отрисовкой. Все это никак не повлияло на производительность.
- Оставил проект на пару часов без перезапуска потоков. Нагрузка на цпу не менялась со временем.
Все это не является доказательством, что БАС не добавляет где-то использование цпу, но в данный момент я не вижу серьезной разницы с CEF по производительности.