有没有办法限制javascript性能来模拟慢客户端

时间:2011-12-15 14:32:36

标签: javascript

我正在使用jQuery并且使用$(document).ready()运行相当数量的javascript的网站上工作。在我的开发机器上,一切运行都很棒,但它是一台非常强大的机器。我收到了人们使用旧硬件行为的报告,这些行为似乎很奇怪,而且我相信这是在较慢的机器上处理这个初始javascript所花费的时间。

显然,解决方案是解决这个初始的javascript,但它让我想知道 - 有没有人知道一种方法来降低Chrome或Firefox中javascript的执行速度,以便能够在我的dev上模拟这些较慢的客户端机?

干杯!

更新 回到这个问题发布时,今天的工具集并不相同。那时VM选项是最佳选择,因此我将其作为已接受的答案。但是现在我会按照Oded Niv的建议直接使用Chrome开发工具

11 个答案:

答案 0 :(得分:71)

Chrome developer tools -> Timeline下,您现在可以选择降低CPU,查找下拉列表:

Chrome CPU throttling

<强>更新

Chrome(ium)在新版本中已更改,现在位于Performance标签下,您必须点击角落中的设置按钮才能显示此功能:

Chrome new CPU throttling

答案 1 :(得分:14)

这可能不是最好的解决方案,但可以定义工作的是运行虚拟机,只要它们低于真实机器,就可以指定所有硬件规格。 看this post

答案 2 :(得分:13)

我会使用虚拟机并限制它的资源。如果你不是虚拟机的粉丝,那么我会在院子里出售,旧货店等找到一台旧机器并将其用作测试平台。你永远不能打补丁,填补蹩脚的恶意软件负载程序,然后它就像“普通用户”的体验。 : - )

答案 3 :(得分:1)

在后台运行Folding@Home以占用CPU。

如果您有多核处理器,请使用任务管理器将IE限制为单个核心,并且可能还将一些CPU密集型应用程序限制在同一核心。

答案 4 :(得分:1)

虚拟化就是答案! 您可以使用VirtualBox,它是免费的。 你可以用它模拟一台较慢的机器

答案 5 :(得分:1)

比虚拟机更容易,我相信它会成为一种可以减慢所选应用程序速度的工具(在您的情况下是浏览器进程)。

您可以随时尝试将浏览器进程的优先级设置为最低值。

此外,您可以尝试使用其中一种工具。它们基本上用于减慢系统/特定应用程序的速度,因此可以在新系统上播放旧游戏。可能适合您的测试用例。

http://moslo.info/

http://www.reocities.com/kulhain/

http://www.sierrahelp.com/Utilities/SlowdownUtilities.html

答案 6 :(得分:1)

您还可以尝试通过操作系统中的电源管理设置来降低CPU的压力。例如,对于Win 8,您可以使用&#34;控制面板\系统和安全\电源管理\更改您的电源方案 - &gt;更改高级电源设置 - > CPU电源管理 - &gt;最大CPU频率级别&# 34; (对不起,这是来自非英语Win8 UI的翻译,但我认为找到设置并不困难)。这在某种程度上有所帮助。

答案 7 :(得分:0)

随着时间的推移,所有事物都会发生变化,因此“网络”选项卡中现在出现了限制,因此我想添加以下内容:

enter image description here

答案 8 :(得分:-1)

我做了这个并且在一两分钟之内我的火狐吸收了我所有的记忆。通过将setTimeout()更改为更高的值,可以大大减慢重载速度。几乎使一切运行缓慢,切换选项卡和其他页面加载。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
    body, html{
        height:100%; 
    }

</style>
<script language="javascript" type="text/javascript">

var NUM = 0;
function addMore(){
    var cur = document.getElementById('ta').value;
    var newVal = NUM.toString();
    if(cur){
        newVal = newVal+cur;
    }
    NUM++;
    document.getElementById('ta').value = newVal;
    setTimeout("addMore()",1);
}

</script>
</head>

<body onload="addMore()">

<textarea id="ta" style="width:80%; height:80%;">0</textarea>

</body>
</html>

答案 9 :(得分:-3)

我不知道您可以依赖或控制的任何内容,但您可能会尝试安装两个防病毒程序(或者至少与您拥有的CPU核心数一样多),对每个程序启动完整扫描并进行测试那些完整的扫描正在运行。

答案 10 :(得分:-4)

使用Fiddler - 它是免费的 - 允许您模拟连接速度。拨号,ADSL等。

http://www.telerik.com/fiddler