在它变得粗鲁之前有多少记忆?

时间:2012-02-08 23:39:51

标签: javascript performance memory

我目前正在开发一个网络应用程序,并且受到了几个不同的应用程序(主要是Cloud9IDE)的启发,他们在javascript对象中占据了大部分界面。这使得将来添加功能非常容易,并且还允许将来使用可扩展性选项。

问题是,在内存中存储数据(通过javascript)在什么时候变得粗鲁。我正在建立一个社交网络(想像Twitter),基本上我会为每个“推文”存储一个对象,以及一些更广泛的对象用于接口项目。

浏览器是否强制限制我可以使用多少内存?如果我过去,我的网站会崩溃吗?或者整个浏览器会崩溃吗?它会减慢用户的速度吗?如果是这样,是否有一般规则可以打扰普通用户多少内存?

1 个答案:

答案 0 :(得分:18)

绝对积极地不要使用接近4 GB的内存。大多数人使用32位浏览器,因此浏览器无法支持4 GB:)

更实际的是,请记住,您占用的内存越多,您的应用通常会运行得越慢。今天的Intel / AMD(我不了解ARM)处理器访问寄存器的速度比访问不在缓存中的内存快100倍,所以如果你使用大量内存,你将导致{ {3}},会大大减慢你的申请速度。

因此,假设您希望用户使用您的社交网络,您应该尝试将您的网站设计为在尽可能多的计算机上正常运行。数百万人仍在使用5年以上的Windows XP机器。这些机器可能只有512 MB的RAM,所以如果你使用几百兆字节,你可以破坏所有内存而不仅仅是处理器缓存,因为内核不断交换你想要使用的页面。因此,根据经验,我建议保持低于150-200 MB的内存。 GMail在Chrome for Linux上占用了大约100MB的内存,所以我认为跟上GMail是一个合理的目标。

保持内存使用率相对较低的另一个好处是,您的用户可以更轻松地在智能手机上查看您的网站。 iPhone 3GS(仍然有很多正在使用中)只有256 MB的RAM,因此在您的网站中保持低于200 MB,这使得智能手机用户可以更轻松地加载您的网站而无需不加区别地杀死进程。