QWebEngine渲染echarts图表闪退
背景#
之前在公司内部做了个测试手机FPS性能的工具,界面用pyqt写的,测试时的曲线图用QWebEngine加载echarts来显示。
这个工具也优化了好几个版本,测试数据慢慢接近专业的PerfDog了,之后几个月我也没怎么更新。
问题#
今天突然有同事说,有些电脑用最新版本会闪退。我就让他们试试旧版本,如果旧版本没问题,那就能定位到是哪个版本改出问题了。
结果旧版本也闪退,这就有点奇怪了。
他们又说,有些电脑正常,有些电脑好几个版本都会闪退。一直试到v1.0.3才不闪退,我赶紧去翻那个版本的代码,看看改了什么。
排查过程#
翻来翻去,在一个不起眼的地方看到两行代码:
os.environ["QTWEBENGINE_DISABLE_GPU"] = "1"
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--disable-gpu" 这是之前为了照顾性能差的电脑,把GPU渲染给禁用了。我想是不是因为这个,CPU渲染压力太大,或者跟echarts不兼容?
解决方案#
就把这两行代码注释掉,重新打包给他们试试。
试了之后,确实不闪退了。
总结#
不同电脑的GPU驱动、DirectX版本、Visual C++运行库版本都不一样。有些电脑GPU加速正常,禁用反而出问题;有些电脑GPU驱动有问题,必须禁用才能用。所以这个设置得看具体情况,不能一刀切。
C
ATao
原创QWebEngine渲染echarts图表闪退
分享
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议, 转载请注明出处。