首页 > 解决方案 > puppeteer 无头浏览器在内存不足后崩溃

问题描述

wavesurfer用来生成然后用函数保存sepctrograms它们。问题是每次我加载一个新的时我都需要销毁并创建一个新的。否则将堆叠并导致崩溃。wav filesscreenshot()wavesurfer instancewav filewaveforms

这就是我的代码的结构:

for(waveFile in waveFiles){
  page.evaluate((){
   // create wavesurfer instance generate the spectrogram and 
  // return getBoundingClientRect of the div surrounding the spectrogram 
  //to take a screenshot of it
  })
  page.screenshot()
 //afterwards i need to destroy the wavesurfer instance
}

我尝试传递波形实例并在新的评估()中销毁它,但它没有用。我怎样才能做到这一点?

标签: node.jspuppeteerwavesurfer.js

解决方案


您是否尝试使用标志--disable-dev-shm-usage启动浏览器?

const browser = await puppeteer.launch({
  args: ['--disable-dev-shm-usage']
});

基于puppeteer 的文件

默认情况下,Docker 运行一个 /dev/shm 共享内存空间为 64MB 的容器。这对于 Chrome 来说通常太小,并且会导致 Chrome 在渲染大页面时崩溃。要修复,请使用 docker run --shm-size=1gb 运行容器以增加 /dev/shm 的大小


推荐阅读