Tag: 分配

使用Node.js优化缓冲区大小?

我有一种情况,我需要采取一个stream,并把它组装成缓冲区。 我打算编写一个对象转换stream,它将定期input数据,并输出缓冲区对象(其中缓冲区都是相同的大小)。 也就是说,如果我的chunker转换configuration为8KB,并且写入了4KB,那么在输出8KB的Buffer实例之前,它将等待直到写入额外的4KB。 我可以select缓冲区的大小,只要在8KB到32KB的范围内。 有一个最佳尺寸可供select吗? 我很好奇的原因是Node.js文档提到使用SlowBuffer来备份缓冲区,并分配最小8KB: 为了避免在服务器的生命周期中为小块内存分配许多C ++ Buffer对象的开销,Node以8Kb(8192字节)的块分配内存。 如果一个缓冲区小于这个大小,那么它将由父缓冲区对象支持。 如果它大于这个值,那么Node将直接为它分配一个SlowBuffer板。 这是否意味着8KB是一个有效的大小,如果我使用了12KB,将会分配两个8KB SlowBuffers? 还是仅仅意味着最小的有效大小是8KB? 那么简单地使用8KB的倍数呢? 或者,这根本不重要?

内存错误节点JS(node :: smalloc :: Alloc)

我是节点Js的新手,我构build了一个非常简单的服务器,可以将我请求的zip文件发回给我。 这一切都工作,但在一些请求发生崩溃后,我在terminal上可视化此消息: 致命错误:node :: smalloc :: Alloc(v8 :: Handle,size_t,v8 :: ExternalArrayType)内存不足 var http = require('http'); var url = require('url'); var fs = require('fs'); var port = 1337; // create http server var server = http.createServer(function (request, response) { var path = require('url').parse(request.url, true); console.log('requested ' + path.pathname); //get zipped resoures if (path.pathname == '/getzip') { […]