js 如何获取执行一个方法所用的时间

JavaScript012

js 如何获取执行一个方法所用的时间,第1张

// 使用 console.time() 方法    例如:

function Time () {

    console.time()

    

    // 中间这一块我是随便写的↓

    var a = 0

    for (var i = 0 i < 100000 i++) {

        a++

    }

    console.log(a)

    // ↑↑↑↑↑↑↑↑↑↑↑↑

    

    console.timeEnd()

}

Time()

emmm~~~

for 循环 a++ 10万次 花了近 7 毫秒呢

var memoize = function (f) {

    var cache = {}

    return function () {

        //JSON是JS提供的一个工具对象 (Utility)

        var arg_str = JSON.stringify(arguments)

        cache[arg_str] = cache[arg_str] || f.apply(f, arguments)

        return cache[arg_str]

    }

}

function fibo(n) {

    if (n == 1 || n == 2) {

        return 1

    }

    return fibo(n - 1) + fibo(n - 2)

}

function testfibo(f, n) {

    var now = Date.now()

    f.call(null, n)

    var newNow = Date.now()

    return '执行时间:' + newNow - now + 'ms'

}

var execFibo = memoize(testfibo)

var result = execFibo(fibo, 40)

console.log(result) // -> 863ms

如下有一个求和的函数,我们要知道这个函数执行需要的时间

function add(){

var sum = 0

for(var i = 0i<1000000i++){

sum += i

}

return sum

}

定义一个测试函数,将待测函数作为参数传入

function test(func){

var start = new Date().getTime()//起始时间

func()//执行待测函数

var end = new Date().getTime()//接受时间

return (end - start)+"ms"//返回函数执行需要时间

}

测试并查看实际执行时间

var time = test(add)

console.log(time)