【问题标题】:Javascript object maxium memory sizeJavascript对象最大内存大小
【发布时间】:2016-09-17 04:55:06
【问题描述】:

目前我正在通过 Javascript 进行简单的数据库迁移。我发现自己想要跟踪一些简单的 id -> 对象映射以减少 SQL 数据库调用。

所以问题是,节点中 javascript 对象的最大大小是多少? 假设我有一个包含 2000 条记录的非常简单的表。我只对两列感兴趣,我是否可以将所有这些值存储在一个看起来像 {id1: {col1: "foo", col2: "bar"}, id2: {col1: " ss", col2: "bb"}} ??

如果2000还可以,我能做到的最大值是多少?

【问题讨论】:

  • 显然取决于浏览器实现
  • 为什么不直接测试一下?
  • @vp_arth 我说的是节点。
  • browser读作engine

标签: javascript node.js memory v8


【解决方案1】:

没问题

在我的应用程序中,我只是将一些日志存储在一个 Array 实例中,并将长度限制设置为 10000;

var maxListLength = 100000; 这使得 Array 实例大小或多或少达到 50MB;

并且当应用运行时,可能有100个这种实例,但没有问题;

你应该怎么做是增加V8中Node进程的内存限制:

node --max-old-space-size=4096 your_app.js

【讨论】:

  • 谢谢你回答了我的问题——虽然我不能改变 --max-old-space-size 的东西,但我想我现在知道限制是什么了。
【解决方案2】:

根据 V8 上的这个问题。 Chrome 在内存中可以支持不超过 2GB 的对象。

https://bugs.chromium.org/p/v8/issues/detail?id=847

【讨论】:

  • 一旦总内存使用量达到 2GB 左右,它确实会减慢并最终冻结。至少是在 2017 年 8 月我对一个大规模数据可视化项目进行压力测试的时候。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多