原谅我这个毫无主题的标题。。因为确实不知道如何描述。
有下面两个函数,testParse
和testGetTime
,除了for循环内一句定义语句外,其他函数体内容完全一样,想问下可以把这两个函数合并成一个么?
主要是为了测试两种Date()方法的效率,所以times
值会变得很大
function testParse(times){
var startTime=new Date();
for (var i = 0; i < times; i++) {
var d=new Date();
var formatDate=Date.parse(d);//这一行填写具体的格式化函数
};
var endTime=new Date();
var gapTime=endTime-startTime;
console.log('一共耗时:'+gapTime+'ms');
}
function testGetTime(times){
var startTime=new Date();
for (var i = 0; i < times; i++) {
var d=new Date();
var formatDate=d.getTime();//这一行填写具体的格式化函数
};
var endTime=new Date();
var gapTime=endTime-startTime;
console.log('一共耗时:'+gapTime+'ms');
}
一开始我的思路是swtich
在for
中,但是感觉对函数效率影响比较大(因为当for循环次数比较大的时候,感觉基本上时间都是switch用掉的,对结果污染比较大。
或者就是swtich
放到for
外面,但是这样的话for
循环体的代码就不能重用,所以想问下有没有别的方法?
function testFN(times,ready){
var startTime=new Date();
for (var i = 0; i < times; i++) {
if(ready){
var d=new Date();
var formatDate=Date.parse(d);//这一行填写具体的格式化函数
}else{
var d=new Date();
var formatDate=d.getTime();//这一行填写具体的格式化函数
}
};
var endTime=new Date();
var gapTime=endTime-startTime;
console.log('一共耗时:'+gapTime+'ms');
}
testFN(10000,true);
testFN(10000,false);
javascript
function test(times,func){ var startTime=new Date(); for (var i = 0; i < times; i++) { func(); }; var endTime=new Date(); var gapTime=endTime-startTime; console.log('一共耗时:'+gapTime+'ms'); } function t_parse() { var d=new Date(); var formatDate=Date.parse(d); } function t_getTime() { var d=new Date(); var formatDate=d.getTime(); } test(10000,t_parse); test(10000,t_getTime);
试了下拆成这样测试的结果跟你给出的函数测试结果差不多。
你还可以测点别的想测的……