繁体   English   中英

是否可以在浏览器中使用javascript对用户的系统进行基准测试

[英]Is it possible to benchmark a user's system with javascript in the browser

随着Html5的开始,我们看到了更多关于视频或画布元素的实验。

当用帆布进行实验时,例如制作带有颗粒的烟花,1000颗粒可以在现代机器上很好地工作,但在3年的机器上可能会非常慢。

无论如何,要对用户系统进行基准测试以动态更改画布实验(或任何内容),以便将其优化为所述特定用户。

编辑:这可能是最好的解决方案: http//benchmarkjs.com/

测量渲染几帧所需的时间,并相应地调整细节级别。 如果您不介意动态更改细节,可以使用连续测量。

什么你不想做的就是让你的用户通过坐五分钟的基准,然后才能与你的事做任何事情。

FutureMark的Peacekeeper Benchmark已经做到了这一点。 我认为它也会测试其他一些东西,但它也会进行大量的画布基准测试。

我想你可以设计某种基准测试,测量用户在画布上的帧速率,然后根据它调整细节。 这可以通过设置一个短间隔并在画布上渲染事物,然后在每次迭代时使用Date对象来计算所花费的时间并基于此计算平均帧速率来实现。

编辑:哎呀......读得太快了。 我的回答并不适用。


取决于您想要的准确度。

如果你不想要超精确的东西,可能需要做一些工作。

我看待它的方式; 您最大的问题之一是考虑不同浏览器中的各种JS引擎,并根据特定浏览器和引擎的基线计量每个人。

例如,尝试在IE 5.5上运行任何SunSpider测试,然后在同一台计算机上的Google Chrome上运行...惊人的差异。 你必须考虑到这一点。 http://www.webkit.org/perf/sunspider/sunspider.html

理想情况下,您也希望关联不同浏览器之间的分数(即,此测试在IE 6中的机器A上以x ms运行,在IE 8中在同一台机器上以y ms运行,因此我可以将IE 6分数与IE 8通过使用不同的平均因子得分。 可能很难获得足够大的数据样本量来完成有效的工作。

应该很简单。 只需保留一个帧计数器和经过的时间,无论什么功能更新您的画布,并将前者除以后者以获得FPS。 您可以缩小粒子数/样本数等。 动态地基于FPS。 所以基本上 - 是的,但它完全是定制的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM