我的服务器端代码在这样的循环中运行:
var start = Date.now();
var lotsOfData = calculateData();//SYNCHRONOS, returns 500kb of data
var end = Date.now();
console.log('got data in ', end-start, ' ms'); // ~40ms
var substart = Date.now();
req.io.emit('lotsOfData', lotsOfData);// IS IT SYNC OR ASYNC ?
var subend = Date.now();
console.log('emitted data in ', subend-substart, ' ms'); // ~40ms
起初我做了相当昂贵的计算来获取一些数据。它的同步操作和代码在那里被阻止。之后,我发出并发送事件并随之发送此数据。
我的测试表明,获取和发送都需要大约40毫秒。但是,如果发送部分是异步的,则可以在发送当前数据时获取下一部分数据,因此服务器将每40毫秒发送一部分数据,而不是像现在这样每80毫秒发送一次。
希望你明白我的意思。是否有可能加快速度?