- PVSM.RU - https://www.pvsm.ru -
Привет! В последнем релизе Chrome обнаружил очень необычное поведение браузера. Это поведение вызывало новые необычные ошибки в моём веб-скрипте. И я решил поделиться, как оптимизируют производительность Chrome, и про то, с какими необычными последствиями можно столкнуться.
Поехали.
Аномалия с которой мы столкнулись, выглядит так:
Это выглядит очень странно. Такое ощущение, что Хром полностью блокирует старую вкладку при переключении на новую.
Оказалось, что недавно (релиз 57, 14 марта, 2017) Хромиум выпустил релиз с значительной оптимизацией производительности. Одна из оптимизаций — сокращение ресурсов, выделенных для работы фоновых вкладок. Пруф: https://blog.chromium.org/2017/03/reducing-power-consumption-for.html [1]
Эта оптимизация и блокирует фоновую вкладку сразу (!) после открытия новой. Причём снижение производительности касается не только работы джаваскрипта, но и прочего API. Например, в нашем случае, начали фантастически медленно работать операции на IndexedDB в браузере.
Чтобы обойти такие “особенности поведения”, нам пришлось вызывать собственные асинхронные коллбэки синхронно, и уменьшить зависимость от системных асинхронных API.
Автор: Kaigorodov
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/250391
Ссылки в тексте:
[1] https://blog.chromium.org/2017/03/reducing-power-consumption-for.html: https://blog.chromium.org/2017/03/reducing-power-consumption-for.html
[2] Источник: https://habrahabr.ru/post/324532/
Нажмите здесь для печати.