javascript - 在它变得粗鲁之前有多少内存?

标签 javascript performance memory

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

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

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

最佳答案

绝对不要使用接近 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 以下可以让智能手机用户更轻松地加载您的网站,而不必不加选择地终止进程。

关于javascript - 在它变得粗鲁之前有多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203306/

相关文章:

javascript - AngularJS:对象的推送

javascript - 过滤JS多维数组

c++ - 我怎样才能使 cout 更快?

php - WordPress 2MB 内存限制无处不在

c - 当我没有使用 malloc() 分配足够的内存时,为什么我的代码可以工作?

c++ - 追踪内存损坏的具体调试技巧/工具?

javascript - 在 Node.js v 8.9.3 上,扩展类上的 Array.concat 方法会删除空值 - 为什么?

javascript - JavaScript:类似 map 的数组,排序和添加

mySQL查询队列系统

performance - 客户端逻辑还是服务器端逻辑?