Skip to content Skip to sidebar Skip to footer

Count Functions Calls With Javascript

For example: I have a lot of functions and use them many times. I need to count calls for each function. What is the best practice to make it? At first i thought i need closures, b

Solution 1:

In the simplest case, you can decorate each function with a profiling wrapper:

_calls = {}

profile = function(fn) {
    returnfunction() {
        _calls[fn.name] = (_calls[fn.name] || 0) + 1;
        return fn.apply(this, arguments);
    }
}

functionfoo() {
    bar()
    bar()
}

functionbar() {
}

foo = profile(foo)
bar = profile(bar)

foo()
foo()

document.write("<pre>" + JSON.stringify(_calls,0,3));

For serious debugging, you might be better off with a dedicated profiler (usually located in your browser's console).

Solution 2:

You could try something like this:

<script>var aCalls = 0;
    var bCalls = 0;
    functiona()
    {
        aCalls = aCalls + 1;
        alert(aCalls);
    }
    functionb()
    {
        bCalls = bCalls + 1;
        alert(bCalls);
    }
</script>

Solution 3:

var count = 0;

function myfunction()
{
    count++;
    alert( "Function called " + count);
}


myfunction();
myfunction();

http://jsfiddle.net/xsdzpmwm/3/

Solution 4:

The best way is to use a profiler.

On IE: press F12 to open developer tools, then go to the Profiler tab, and hit the play button. After stopping the profiler, you'll be presented with a lot of info (number of calls for each function, inclusive time, exclusive time, etc.)

On Chrome: press F12, go to Profiles, Collect JavaScript CPU Profile (that won't tell you the number of calls though)

Post a Comment for "Count Functions Calls With Javascript"