Javascript regexp性能和缓存
我一直在寻找这个问题的答案,我在以下回答之间做了一些性能测试:Javascript regexp性能和缓存,javascript,regex,node.js,performance,Javascript,Regex,Node.js,Performance,我一直在寻找这个问题的答案,我在以下回答之间做了一些性能测试: console.time("first_test"); for( i=0;i<10000;i++) result=function1(str); console.log(result); console.timeEnd("first_test"); console.time("second_test"); for( i=0;i<10000;i++) result=function2(str); con
console.time("first_test");
for( i=0;i<10000;i++)
result=function1(str);
console.log(result);
console.timeEnd("first_test");
console.time("second_test");
for( i=0;i<10000;i++)
result=function2(str);
console.log(result);
console.timeEnd("second_test");
this gives:
first_test: 232ms
second_test: 21ms
And if I reverse the order of the tests:
second_test: 128ms
first_test: 102ms
javascript是同步的。您应该编写asyn代码以查看实际结果
我试着给出相同的函数,在不同的循环中运行两次,对于相同的函数,我得到了不同的控制台时间。大多数情况下,第一次测试运行总是需要更长的时间。但当你添加第三个循环时,有时第二个循环速度更快,通常第三个循环速度最快。这一定与浏览器的功能有关
function test(){
console.time("second_test");
for( i=0;i<10000;i++)
result=function2("str");
console.log(result);
console.timeEnd("second_test");
function test2() {
console.time("first_test");
for (i = 0; i < 10000; i++)
result = function2("str");
console.log(result);
console.timeEnd("first_test");
}
return test2()
}
test();
功能测试(){
控制台时间(“第二次_测试”);
对于(i=0;iso,function1
和function2
在哪里?!我添加了没有任何更改的函数。为什么应该添加?
function test(){
console.time("second_test");
for( i=0;i<10000;i++)
result=function2("str");
console.log(result);
console.timeEnd("second_test");
function test2() {
console.time("first_test");
for (i = 0; i < 10000; i++)
result = function2("str");
console.log(result);
console.timeEnd("first_test");
}
return test2()
}
test();