【问题标题】:How much memory before it becomes rude?在变得粗鲁之前有多少记忆?
【发布时间】:2012-03-01 11:27:48
【问题描述】:

我目前正在开发一个 Web 应用程序,并且受到了几个不同的应用程序(主要是 Cloud9IDE)的启发,这些应用程序将大部分界面保存在 javascript 对象中。这使得将来添加功能变得异常容易,并且还允许将来进行扩展。

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

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

【问题讨论】:

  • 这个问题对我来说似乎太本地化了。我想不出任何办法来回答这个问题,除非求助于一两年内就会过时的大致数字。
  • 这些数字不会在一两年内过时。如果有的话,越来越多的内存更少的 ARM 设备(想想平板电脑)正在出售,我预计 2014 年的平板电脑充其量具有当今台式机的内存容量。
  • "tweets" 并不是 140 字节的大内存占用 + 可能还有一些对象开销。如果您使用 javascript 编写视频编辑器,那么您可能需要担心内存使用。

标签: javascript performance memory


【解决方案1】:

绝对不要使用接近 4 GB 的内存。大多数人使用 32 位浏览器,所以浏览器无论如何都不支持 4 GB :)

更实用的一点是,请记住,您占用的内存越多,您的应用通常运行速度就越慢。今天的 Intel/AMD(我不知道 ARM)处理器访问寄存器的速度比访问不在缓存中的内存快大约 100 倍,所以如果你使用大量内存,你会导致thrashing,这会减慢你的速度应用非常广泛。

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

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

【讨论】:

  • @KirkWoll 当您开始担心内存使用时,您已经离开了具有无限空间和时间的理想计算机,而您正在担心实际系统。如果您正在为真实的计算机进行设计,最好考虑一些真实的计算机。
  • 您如何查看单个网页使用的内存量?我在 chrome 开发工具中找不到任何东西,这是我最好的猜测。
  • @jwegner Tools->扳手图标下的任务管理器
  • 我以前从未见过缓存和主内存之间的交换称为抖动。那篇链接的文章非常特定于主内存和磁盘之间的交换。如果您已经想知道有多少主内存太多了,那么您已经超过了完全在缓存中的阈值。
猜你喜欢
  • 2015-02-18
  • 2014-07-25
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多