node写的一个程序 貌似出了内存问题,求帮助
发布于 7 年前 作者 fengzq3 9392 次浏览 来自 问答

哪位大神遇到过这个错误,求帮忙解答,早上打开突然出现。 背景: 本人用node+express写的一个博客程序,昨晚调试一切正常,早上打开继续工作的时候突然报错,且无法访问主页,求大神解答

<--- Last few GCs --->

   48454 ms: Mark-sweep 1373.3 (1434.3) -> 1373.3 (1434.3) MB, 1936.7 / 0 ms [al
location failure] [GC in old space requested].
   50401 ms: Mark-sweep 1373.3 (1434.3) -> 1373.3 (1434.3) MB, 1940.9 / 0 ms [al
location failure] [GC in old space requested].
   52332 ms: Mark-sweep 1373.3 (1434.3) -> 1373.3 (1434.3) MB, 1930.3 / 0 ms [la
st resort gc].
   54448 ms: Mark-sweep 1373.3 (1434.3) -> 1373.3 (1434.3) MB, 2116.2 / 0 ms [la
st resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 000002B1897C9E51 <JS Object>
    2: /* anonymous */ [000002B189704189 <undefined>:~9] [pc=000001A16C6160A7] (
this=000002B1897E0D29 <JS Global Object>)
    3: /* anonymous */ [000002B189704189 <undefined>:34] [pc=000001A16C60BD04] (
this=000002B1897E0D29 <JS Global Object>,content=000002182864A169 <JS Array[13]>
,encodeURIComponent=000002B1897BC2F1 <JS Function encodeURIComponent (SharedFunc
tionInfo 000002B189757C29)>,nav=0...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memo
ry

4 回复

你这只有错误提示 v8殷勤 64位机器,可使用内存是1.4G; 不管你有多大内存;超过1.4就是I内存溢出。

仅仅看这个错误是没法调试的; node 是单线程的;所有访问都走着一个线程;单例的写法有存储数据的要格外小心; 执行完一个,占用内存增加且没有 释放的;那明显就是有内存泄漏;

明白运行原理就好找问题了 下面是别人写的一片文章,希望对你有帮助。 内存泄漏检查的一片文章

不释放我估计主要是,类似全局的变量对象写入数据 引起的;

你不贴代码谁知道你哪里内存泄漏了

@slclub 多谢,已找到原因,是因为死循环写入了一个全局变量。。

客气,解决就好

回到顶部