var http = require('http'); http.createServer(function(req,res){ res.writeHeader(200, {'Content-Type' : 'text/html ; charset=utf-8'}) if(req.url !== '/favicon.ico'){ console.time('test'); var c=1,a=2,b=3; res.write(show()+''+c); c=a+b; res.write('<br />') res.write(c+'<br />'); console.timeEnd('test'); res.end() } }).listen(8000) function show(){ var str=''; for(var i=0;i<10000;i++){ str+=i*i*i*i+'<br />'; } return str } console.log('server is running at http://127.0.0.1:8000')
最后两行是1和5!
书上写http.ServerResponse对象实现了一个 stream.Writable(可写流)。但是可写流一般是异步的(如fs写入流,zlib流,子进程的stdin)啊,这样对事件驱动的服务模型正好。现在我测试出的是res.write同步也就就是说要执行完这个回掉才能执行事件队列里的下一个回掉?
function(req,res)是ruquest事件的回掉,也就是说如果应对好几万个并发请求就要执行几万个function(req,res),哪怕function(req,res)里没有cpu密集应用积少成多这不是用户访问就会有延迟?但是node非常擅长处理密集io啊?是我想错了么?
LLeo小浩
相关分类