node.js - puppeteer 无头浏览器在内存不足后崩溃
问题描述
我wavesurfer
用来生成然后用函数保存sepctrograms
它们。问题是每次我加载一个新的时我都需要销毁并创建一个新的。否则将堆叠并导致崩溃。wav files
screenshot()
wavesurfer instance
wav file
waveforms
这就是我的代码的结构:
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
}
我尝试传递波形实例并在新的评估()中销毁它,但它没有用。我怎样才能做到这一点?
解决方案
您是否尝试使用标志--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 的大小
推荐阅读
- python - 将同一个 excel 中的多张工作表导入 pandas 的一个数据框中
- javascript - 页面刷新后如何保值?
- javascript - 在 Array[2D] 中查找 Array[1D] 并返回索引
- c# - 特定的字符串作为可能的参数 - 枚举?
- jenkins - 在构建历史中显示运行构建的用户名
- php - 在 PHP 的嵌入式 HTML 中实现内联三元运算符
- jquery - 验证输入字段的特定结构
- windows - JNLP 连接在 Jenkins 中已被弃用 将 Windows 从属连接到詹金斯的新推荐方法是什么?
- android - PackageInstaller.uninstall() 方法在 Android-TV 中不起作用(设置框)
- ssl - 验证自签名证书的命令是否可以访问应用程序