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

是否可以对用户进行基准测试';在浏览器中使用javascript的s系统,javascript,html,canvas,Javascript,Html,Canvas,随着Html5开始普及,我们看到了更多关于视频或画布元素的实验 当用帆布做实验时,例如用粒子制作焰火,1000个粒子在现代机器上可能工作得很好,但在3年的机器上可能运行得很慢 是否存在对用户系统进行基准测试,以动态更改画布实验(或任何东西),从而针对所述特定用户对其进行优化 编辑:这可能是最好的解决方案:FutureMark已经在做这件事了。我认为它也测试了其他一些东西,但它也做了大量的画布基准测试 我想你可以设计一种基准,为用户测量画布上的帧率,然后根据它调整细节。这可以通过设置一个较短的间隔

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

当用帆布做实验时,例如用粒子制作焰火,1000个粒子在现代机器上可能工作得很好,但在3年的机器上可能运行得很慢

是否存在对用户系统进行基准测试,以动态更改画布实验(或任何东西),从而针对所述特定用户对其进行优化

编辑:这可能是最好的解决方案:

FutureMark已经在做这件事了。我认为它也测试了其他一些东西,但它也做了大量的画布基准测试


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

编辑:哇。。。把问题读得太快了。我的答案并不适用。


取决于你想要的准确度

如果你不想要超精确的东西,可能需要一点努力

在我看来;最大的问题之一是考虑不同浏览器中的各种JS引擎,并根据特定浏览器和引擎的基线来衡量每个人

例如,尝试在IE 5.5上运行任何SunSpider测试,然后在同一台机器上运行Google Chrome。。。惊人的差异。你必须考虑到这一点


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

测量渲染几帧所需的时间,并相应地调整细节级别。如果你不介意在飞行中改变细节,你可以使用连续测量


你不想做的是让你的用户坐在一个5分钟的基准测试中,然后他们才能对你的东西做任何事情。

应该很简单。只要在任何更新画布的函数中保留一个帧计数器和经过的时间,并将前者除以后者即可得到FPS。您可以根据FPS动态缩放粒子/采样数/等。所以基本上——是的,但它完全是定制的。

你让我想到了这一点:我认为他不想要计算机的“分数”(不需要比较不同的浏览器)。唯一重要的是当前浏览器环境的性能。@Matti Virkkunen这个想法似乎是最好的。我很惊讶它没有被更多地使用。10帧应该足够了,或者你会认为需要更多的帧吗?你认为什么是一个好的基准?素数低于100?@Sycren:如果运行速度太慢,我只会运行实际的东西并进行调整。Virkkunen这样做的问题是,除非你在第一次运行时检查每一步,否则可能会导致用户浏览器(或机器)崩溃。做一个适用于所有浏览器的数学测试可能会很困难better@Sycren:除了做简单的数学不会检查图形性能之外。如果你正在做一个粒子效果,绘制它们可能比计算它们的运动所需的简单数学要花更多的时间。