我目前正在开发一个网络应用程序,并且受到了几个不同的应用程序(主要是 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/