CNode

node 内存限制的问题

Nname5566发布于12 年前最后回复12 年前22 回复31710 浏览0 收藏

看了一下关于 node 内存限制的资料,发现众说不一,朴灵的《深入浅出 NodeJS》说道可以通过 --max-old-space-size 和 --max-new-space-size 来设置 v8 使用内存的上限。官方 git 微博上说道:

Currently, by default v8 has a memory limit of 512mb on 32-bit systems, and 1gb on 64-bit systems. The limit can be raised by setting --max-old-space-size to a maximum of ~1gb (32-bit) and ~1.7gb (64-bit), but it is recommended that you split your single process into several workers if you are hitting memory limits.

设置以后最大上限为 1G 和 1.7G。

后来自己测试了一下,貌似最大上限 64 位也就是 1.7G 左右。请问有没有什么办法可以设置内存使用上限的?

查看回复

回复 (22)

A
AdoHe#1·12 年前

多用用buffer把,buffer内存的分配是c++层面完成的,不会利用V8的堆内存。。。

J
jiangzhuo#2·12 年前

改改參數 重新編譯一下node。。。

Y
youxiachai#3·12 年前

其实这个内存限制是v8..... 如果你要用大内存..自己new 一个buff 对象...吧.

Y
youxiachai#4·12 年前
Y
youxiachai#5·12 年前

两年前的贴.... http://cnodejs.org/topic/500904be4764b72902d30f4d

贴这个link 可能跑题了..不过可能是需要用到大内存的一个场景吧...

K
kingapple#6·12 年前
引用 name5566忽然感到很纠结...

你跑什么,要用这么大内存?

N
name5566#7·12 年前
引用 name5566忽然感到很纠结...

@kingapple 一直用 C++,目前研究研究新的可能。

N
name5566#8·12 年前
引用 PerterPon多进程不就行了?非得在一个进程里面跑?

如果是 web 的话,可能比较好做,但有一些应用场合不太容易做。

K
kingapple#9·12 年前
引用 name5566忽然感到很纠结...

@name5566 亲用游戏服务器多久鸟?

N
name5566#10·12 年前
引用 name5566忽然感到很纠结...

@kingapple 刚刚开始研究是否可用在游戏服务器上

K
kingapple#11·12 年前
引用 name5566忽然感到很纠结...

@name5566 是页游么?

N
name5566#12·12 年前
引用 name5566忽然感到很纠结...

@kingapple 手游。页游应该也可以搞。端游用 Node 太激进。

N
name5566#13·12 年前
引用 name5566忽然感到很纠结...

@kingapple 端游比较复杂,大多用 C++。虽然没仔细考虑过,但估计 v8 在 GC 上会有压力。

K
kingapple#14·12 年前
引用 name5566忽然感到很纠结...

@name5566 亲做过端游服务器么:)

N
name5566#15·12 年前
引用 name5566忽然感到很纠结...

@kingapple 做了几年。

B
blacktail#16·12 年前

Raw data is stored in instances of the Buffer class. A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap.

M
meteormatt#17·12 年前

Windows上的话, 用cluster多开几个核, 内存占用就上去了. 因为会多出好几个node.exe进程

N
name5566#18·12 年前

忽然感到很纠结...

N
name5566#19·12 年前
引用 name5566忽然感到很纠结...

@kingapple 游戏服务器

P
PerterPon#20·12 年前

多进程不就行了?非得在一个进程里面跑?

K
kingapple#21·12 年前
引用 name5566忽然感到很纠结...

@name5566 为何不直接用C来写:( 是渣渣页游么?

K
kingapple#22·12 年前
引用 name5566忽然感到很纠结...

@name5566 端游用 Node 太激进,因为通信量大?

参与回复
登录后即可参与回复。登录