【问题标题】:JavaScript: How to determine performance of the runtime (aka browser)?JavaScript:如何确定运行时(又名浏览器)的性能?
【发布时间】:2013-02-22 00:21:03
【问题描述】:

我有一个 JavaScript 应用程序,它运行良好,但肯定需要一些内存/CPU 性能(它基于谷歌地图)。

所以基本上它在台式机/笔记本电脑上运行良好,iPad 工作正常。但是现在有了所有这些不同的设备,小型设备肯定会过载。

所以基本上我想确定可用的运行时并决定是启动我的 JavaScript 应用程序,还是显示一条消息。

  1. 好的,我可以检查浏览器,但这是一个永无止境的故事
  2. 我可以查看操作系统信息,但这又是非常乏味的。还有一些操作系统可以在高性能设备和低端硬件上运行。
  3. 我可以检查屏幕尺寸并排除手机,但它变得困难

那么有没有办法确定客户端的性能? 只是说清楚,我不关心它是否是平板电脑,但如果它是一个低性能的平板电脑, CPU 性能/内存很少(所以Detect phone/tablet/web client using javascript 没有帮助)。

【问题讨论】:

  • 也许运行一个简单的测试/函数,代表您网站的基本功能级别;监控它的开始时间和完成时间。确定持续时间,并根据该持续时间确定运行缓慢、正常还是快速?
  • 我已经测试了以下内容:测量应用程序启动的时间,如果在给定时间后未达到某个点,我会停止。不幸的是不是很可靠,因为异步调用的性质和开始时的一些挂起(误报)。该概念还缺少以下内容,它检查“后”加载,而不是预先加载。但也许我必须改进检查。
  • 之前至少有人问过这个问题(例如here)。我还没有投票关闭作为副本,因为现有的答案是旧的(事情发生了变化)并且不是很令人满意;此外,您还加入了一些新因素(Google 地图、iPad 上的测试)。
  • 但这给了我一个想法,蒂姆,我会检查 JavaScript 基准,看看我是否可以从中得出一些东西。
  • 你可以使用 java 或类似的东西来做到这一点,但我认为这在 javascript 中是不可能的。

标签: javascript browser


【解决方案1】:

在 javascript 中,您可以检查功能列表,如果设备内存不足,则根据该列表得出结论。

例如:

  1. 使用 window.navigator.hardwareConcurrency 检查核心数 (为了获得更好的覆盖率,请添加Core Estimator polyfill

  2. 检查 WebGL 支持(我喜欢 user2070775 的建议):Proper way to detect WebGL support?

  3. 检查它是台式机还是移动设备。很可能桌面不会有任何内存问题。

  4. 检查屏幕分辨率 - 小分辨率很可能出现在低内存设备上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2015-02-07
    • 2021-04-16
    • 2011-02-28
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多