【问题标题】:Can I find out if there are other browser windows running webgl?我可以找出是否有其他浏览器窗口运行 webgl 吗?
【发布时间】:2014-07-31 04:22:28
【问题描述】:

我正在创建一个基于三个.js 的网站,并且在某些浏览器上(我正在看你的 firefox),如果其他选项卡也在运行 webGL,我的性能会卡顿。

我想知道是否有办法(在浏览器中)找出其他选项卡是否正在使用 webgl 服务,以便我可以提醒用户。

我感谢所有 cmets!

【问题讨论】:

  • 正如 Leeft 所说,不,你不能。这将违反安全规定。您可以建议用户关闭其他 WebGL 选项卡,尽管实际上任何事情都可能使您的选项卡结结巴巴。他们可以运行 4 个 handbrake 副本。他们可能正在另一个窗口中运行本机游戏。他们可能正在观看高清 youtube 视频或将流媒体视频传输到他们的电视。他们可以做的可能使您的标签卡顿的事情的数量几乎没有限制。

标签: three.js webgl


【解决方案1】:

那将违反安全规定,所以不,你不能这样做。

更新

我只是补充一下,您可以包括 stats.js(更有可能,您需要做一些非常相似的事情来确定 stats.js 正在做什么,以了解 平均值 em> 帧速率就像并寻找该性能的下降),如果经常下降,则提醒用户。也就是说,您可能会计算错误,并且总是有许多您无法控制的变量会影响性能。大多数问题都可以通过重新启动浏览器来解决,特别是 Firefox 似乎没有在页面重新加载时释放其 GPU 内存。当该内存已满时,性能会严重下降。

无论如何,您发出的任何警告都不应该以任何方式干扰用户。

还请注意,据我所知,正确编写的 WebGL 程序(按预期使用 requestAnimationFrame)在选项卡位于后台时不会消耗太多计算资源,尽管这也可能因浏览器而异。但是后台的选项卡仍然会消耗内存(GPU 内存、JavaScript 代码和对象)。

【讨论】:

    猜你喜欢
    • 2011-01-31
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2010-10-03
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多