#javascript #electron #chromium #devtools #renderer
#javascript #электрон #chromium #инструменты разработки #средство визуализации
Вопрос:
У меня есть приложение electron с процессом визуализации, который отображает большие изображения (~ 300 МБ). Данные изображения принимаются по соединению websocket в web worker, где я использую rxjs для управления websocket.
Когда у меня открыты Chrome DevTools, средство визуализации завершает работу со следующим сообщением от electron:
Renderer process oom - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
Когда у меня не открыты DevTools, процесс рендеринга НЕ завершается сбоем. Я попытался установить флаг в Electron перед запуском процесса рендеринга: --js-flags="--max-old-space-size=[memory size in MB]"
, что помогло смягчить некоторые сбои, которые я наблюдал даже при закрытых DevTools, но независимо от того, насколько высоко я установил это число, процесс все равно постоянно завершается сбоем, когда DevTools открыты и большое сообщение получено через websocket. Я не вижу большого использования памяти процессом в диспетчере задач в Windows 10.
После обширной отладки я сузил время сбоя средства визуализации до момента получения большого сообщения websocket. Я устанавливаю точку останова и сообщение журнала консоли в первой точке, где данные доступны в JavaScript, и они не перехватываются / не отображаются до сбоя процесса визуализации. Итак, я предполагаю, что при открытии DevTools возникает какая-то проблема с памятью. Это не может быть проблемой с rxjs, так как он отлично работает с закрытыми DevTools. Есть ли какой-то отдельный лимит памяти для Chrome DevTools, с которым я сталкиваюсь здесь?