Zap*_*Zap 5 gpu chromium electron
我想设置使用多少 GPU RAM 以防止应用程序在 Windows 上溢出。有人有任何专家建议吗?
\n\n我正在使用 Electron为 windows构建一个 \xc2\xa0自动播放器。该播放器根据时间表播放混合视频(h264编码\xc2\xa0 mp4)、\xc2\xa0 html \xc2\xa0 和\xc2\xa0 jpeg \xc2\xa0 (有点像演示文稿)。
\n我在多个 Windows 设备上测试了该应用程序,结果差异很大!
所有设备都是 \xc2\xa0 Asus的微型计算机。总的来说,我注意到\xc2\xa0 2个明显的差异:
\n\n在没有硬件加速的设备\xc2\xa0上\xc2\xa0,chromium\xc2\xa0 gpu进程\xc2\xa0消耗了大约\xc2\xa0 30MB \xc2\xa0共享RAM,无论播放的内容如何,这个数字都不会改变。然而,CPU 承担了这里的所有负载,这意味着它正在使用软件而不是硬件来解码 mp4 (h264)。
\n\n在具有硬件加速的设备\xc2\xa0上,\xc2\xa0的CPU负载当然较小,\xc2\xa0 ,但chromium gpu进程使用的RAM内存差异很大。显示 jpeg 或 html 时,\xc2\xa0 RAM \xc2\xa0 约为 \xc2\xa0 0.5GB,当 \xc2\xa0 mp4\的 RAM 内存很容易上升到 \xc2\xa0 2GB \xc2\xa0 并且更多的。
\n\n在没有硬件加速的更强大的设备上,这不是一个大问题,它们有 8GB 或更多的共享内存,并且不会崩溃。然而,其他一些设备只有 4GB 共享内存,\xc2\xa0很容易就会耗尽内存。
\n\n内存不足的结果是 \xc2\xa0应用程序完全崩溃\xc2\xa0(显示内存溢出消息)或 \xc2\xa0 应用程序挂起\xc2\xa0(继续运行但不\xc2\xa0)不再做任何事情,通常只是显示白屏)。
\n\n我知道我可以使用 \xc2\xa0 app.commandLine.appendSwitch将某些标志传递给 browserwindow将某些标志传递给 browserwindow 。
\n\n这些是我尝试过的一些标志及其效果,我在这里找到了它们的列表\xc2\xa0 :
\n\n为什么其中一些命令行开关对 GPU 行为没有任何影响?\xc2\xa0所有设备都有板载 GPU 和共享 RAM。我知道在启动时使用命令行开关,因为当我检查 Windows 任务管理器中的进程时,我可以看到开关已传递到进程(使用任务管理器中的命令行选项卡)。因此开关已加载,但似乎仍然被忽略。
\n\n我想设置使用多少 GPU RAM 以防止应用程序在 Windows 上溢出。有人有任何专家建议吗?
\n小智 0
我正在寻找“如何释放GPU进程占用的内存?” 并路过这里。
对于你的情况,我认为你可以运行一个后台脚本来定期检查GPU内存使用情况,并在超过一定值时直接杀死它。在我的印象中,这不会影响Electron的工作。Electron会自动启动另一个GPU进程。