gpt4 book ai didi

http - node.js - 可能的 http 服务器内存泄漏

转载 作者:IT老高 更新时间:2023-10-28 23:23:26 26 4
gpt4 key购买 nike

Nodejs 版本:0.8.8

这里是服务器:

var http = require('http');
var port = 1338;
var ip = "127.0.0.1";

http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hi there\n');
}).listen(port, ip);

客户端(php 脚本)向上述服务器发送一个 post 请求。 POST 是一个字符串 (json),大小约为 4 MB。

如您所见,服务器对发布的数据不做任何事情。为了调试,我删除了所有代码并返回到什么都不做的 hello world 示例:)
当我查看 Node 进程的内存使用情况(在 Activity Monitor、mac 应用程序中完成)时 - 它报告每个请求的 Node 服务器内存使用量都在增加。
所以在 20 次左右的请求之后,内存使用量翻了一番。

最佳答案

这不是错误。这是正常的预期行为。

Node.js 基于 JavaScript,这是一种垃圾收集语言。简而言之,发生的情况是内存没有立即释放,而是需要一些时间才能释放内存(例如收集垃圾)。 V8(哪个 Node 使用)实际上有 a very intelligent garbage collector即“确保快速的对象分配、短暂的垃圾回收暂停和无内存碎片”。

为了向您演示这种行为,我在 Windows 上使用 node.js 0.8.8 运行了上述脚本,并用大量 HTTP POST 请求轰炸了服务器。

Process Explorer 显示以下内存使用图:

enter image description here

如您所见,内存使用率上升,直到达到触发垃圾回收的某个限制。清理完成后,使用量被重置并再次开始爬升,直到下一次触发。

关于http - node.js - 可能的 http 服务器内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12917533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com