Node.js 用于在平面文件中转储分析数据的NodeJ

Node.js 用于在平面文件中转储分析数据的NodeJ,node.js,Node.js,我们计划使用nodejs代替tomcat或jetty。但我们在它周围运行了一些测试,node的执行速度比jetty慢。我们运行的测试用例在8核机器上,内存为32gb。对于测试,我们使用了1000000个请求和1000个并发性。我们使用了集群模块、url模块、http模块和带有流的操作系统模块。这些模块是否增加了任何开销…?我们是否可以进行任何优化以提高性能。以下是节点的代码 var http = require("http"); var url = require("url"); var clu

我们计划使用nodejs代替tomcat或jetty。但我们在它周围运行了一些测试,node的执行速度比jetty慢。我们运行的测试用例在8核机器上,内存为32gb。对于测试,我们使用了1000000个请求和1000个并发性。我们使用了集群模块、url模块、http模块和带有流的操作系统模块。这些模块是否增加了任何开销…?我们是否可以进行任何优化以提高性能。以下是节点的代码

var http = require("http");
var url = require("url");
var cluster = require('cluster');
var fs = require('fs');
var numCPUs = require('os').cpus().length;
var stream = [];
if (cluster.isMaster) {
        for (var i = 0; i < numCPUs; i++) {
                cluster.fork();

        }
        cluster.on('death', function(worker) {
                console.log('worker ' + worker.pid + ' died');
        });
}
else{
    var server = http.createServer(function(request, response) {
        response.end();
    });
    stream = fs.createWriteStream("nodejsCluster"+cluster.worker.id+".txt");
    stream.once('open', function(fd) {
        server.listen(8084);
    });
    server.on('request', function(request, response){
            var parsedUrl = url.parse(request.url, true, true);
            var queryAsObject = parsedUrl.query;
            stream.write( ( new Date()  )+'This is the content to write into file '+queryAsObject.test+"\n");
    });
    console.log("Server is listening"+cluster.worker.id);
}

谢谢

。Jetty针对真实世界的使用和延迟进行了优化。不适用于不切实际的负载情况。我们预计每秒钟的峰值分拣流量为2500 req。看来,您的基准并不是针对真实世界的情况编写的。最后一个链接对我们的决策有很大帮助。谢谢但是我们可以优化上面提到的代码吗。