我不太了解node.js中的https模块是如何工作的,所以如果你们中的任何一个人能够回答这个问题,那就太棒了。
我在一个小应用程序中注意到,在发出任何实际请求之前,HTTPS.get(...)函数需要大约150ms才能从头开始执行。这就是我所说的:
var http = require('http');
var https = require('https');
console.time("Begin");
function request() {
console.timeEnd("Begin");
var myvar = https.get("https://www.fiadkbjadfklblnfthiswebsidedoesnotexist.com", function(res) {
});
console.timeEnd("Begin");
}
request();
当我使用&#39; https.get&#39;时,控制台说在代码开始对get请求做任何事情之前大约已经过了150ms。但是当我使用&#39; http.get&#39;延迟小于<5ms。
我的问题是,究竟是什么造成了150毫秒的延迟,无论如何都要减少它?我确定它不是ssl握手,因为即使我输入一个不存在的网站,这种延迟也会发生。如果有可能在程序中更早地编写代码,那么当我执行https.get()请求时,它就不会有这么长的启动时间。
答案 0 :(得分:0)
您在代码中多次使用console.timeEnd('Begin')
从节点v6.0.0开始,timeEnd()删除计时器以避免泄漏计时器
因此,当您首先调用console.timeEnd('Begin')
时,它会删除计时器,而在第二次调用console.timeEnd('Begin')
时,它将找不到对它的引用
如果要为不同的问题使用2个计时器,则可以创建多个标签,但请确保每个timeEnd()
仅写一次time()