我遇到此问题...我正在使用Windows 7和Chrome。

我已经尝试过这种解决方案:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

但是没有用。

还尝试了其他:
Devextreme : FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

但是我找不到该文件,就像它不存在一样。


我正在尝试做this教程。
我正在执行的代码是这样的:


var http = require("http"),
fs = require("fs");

http.createServer(function(req, res){

    fs.readFile("./index_ASYNC.html", function(err, html){
        var i=0;

        while(true) {
            i++;
            res.write(i+""); // Envía respuestas al navegador.
        }

        // res.writeHead(200,{"Content-Type":"text/html"});
        res.end();
    });

}).listen(8080);



我使用节点hola_html.js执行它。
产生的错误:



  
  
  [5344:00000000002C05B0] 46772毫秒:标记扫描1399.5(1427.9)->
  1399.5(1427. 9)MB,2231.9 / 0.0毫秒分配失败要求旧空间中的GC [5344:00000000002C05B0] 49806毫秒:标记扫描1399.5
  (1427.9)-> 1399.5(1426. 9)MB,2583.4 / 0.0 ms最后使用GC
  请求的旧空间[5344:00000000002C05B0] 52394毫秒:标记扫描
  1399.5(1426.9)-> 1399.5(1426.9)MB,2588.3 / 0.0 ms请求在旧空间中使用最后一个GC
  
  
  
  ==== JS堆栈跟踪==========================================
  
  安全上下文:0000028BF5325EE1
      1:_send [_http_outgoing.js:〜216] [pc = 0000002FDD52590C](this = 000000B79B184D2 1,data = 000003BB18D85CB1,encoding = 0000010C6FF02201,callback = 0000010C6FF02201 )
      2:/ *匿名* / [C:\ Leo \ Prodigios \ CursoNodeJS \ 4-encabezados \ hola_html_ASY
  NC_v2.js:〜10] [pc = 0000002FDD5131F2](this = 00000191E280BE21
  
  严重错误:CALL_AND_RETRY_LAST分配失败-JavaScript堆
  内存不足



我必须添加,我尝试了在Internet(Devextreme : FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory)上找到的第二个选项,但是它不起作用。

最佳答案

显然,此示例将导致内存泄漏,此行导致了此泄漏:

while(true) {
   i++;
   res.write(i+""); // Envía respuestas al navegador.
}


您将在此处无限循环地递增i并多次写入输出(您只应写入一次)。

没有时间让垃圾收集器进行处理,并且您的RAM很快就达到了极限

我不懂这段视频中的语言,但我相信作者对此方式提出了警告。

示例应用程序可能如下所示:

var http = require('http'); // import module
http.createServer(function (req, res) { // create http server
  // create header to let browser know what content you are trying to send
  res.writeHead(200, {'Content-Type': 'text/plain'});
  // write string to client
  res.write('Hello World!');
  // end the request
  res.end();
}).listen(8080); // listen to requests on http://localhost:8080


我在您的教程中看到了可以使用的更复杂的示例,例如在4:25

10-06 15:14