使用JavaScript来检测设备,CPU / GPU性能?(Using javascript to

2019-08-04 12:54发布

(问题是并非特定于three.js所但我将用它作为一个例子)

我一直在使用three.js所到最近开发一个Web应用程序接口和书面的WebGL和Canvas渲染器(用于桌面浏览器)之间的一些不错的后备。

但现在的问题变成了如何正确检测设备能力,有2个方面的问题:

  1. 浏览器功能 (静态功能,如WebGL的/月):这主要是网络社区内使用简单的功能检测解决。
  2. 设备能力 :这是最困难的部分,不直接访问设备的硬件信息,我们需要告诉我们是否应该退回到不那么苛刻的硬件代码的一些方法。

一个明显的例子 :火狐移动/歌剧移动声称支持WebGL的但是越野车或由设备硬件的限制。

一些变通办法我想出迄今:

  1. 使用一个共同的特点是性能指标 -触摸设备,例如,具有一般不太强大的硬件。 该CON:它不是面向未来。
  2. 黑名单已知的马车浏览器/设备 - UA嗅探将是不可避免的,它可以是很难维持的。
  3. 性能测试 -因此这个问题,除了运行代码和措施帧率,有更好的选择?

或者,也许它并没有这么难,有没有其他的建议?

Answer 1:

我已经结束了使用上,我们想利用帆布功能,可在高规格的CPU / GPU的台式机,以及低速设备如表和手机项目绩效衡量方法。

基本上,我们开始在最低限度场景复杂,如果renderloop只需不到为33ms,我们增加了复杂性(我们也降低复杂性,如果renderloop开始时间太长在以后的时间)。

我想你的情况,你可能需要运行一个快速的画布和WebGL性能测试,然后选择一个。 已经花了一些时间研究这个我还没有遇到一些棘手的非显而易见的技术,解决了这个更好。



Answer 2:

您可以使用http://webglstats.com/对WebGL的硬件支持和特征检测。



Answer 3:

如果您使用three.js所,你可以只使用detector.js,以找出是否启用了WebGL的。 还停留在canvasrenderer远会有所帮助。 使用webglrenderer或softwarerender。 因为他们允许更多的顶点。 该softwarerender是相当新的,需要一些工作,但可以使用。



文章来源: Using javascript to detect device CPU/GPU performance?