Count functions calls with JavaScript

后端 未结 4 350
傲寒
傲寒 2021-01-21 12:16

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

相关标签:
4条回答
  • 2021-01-21 12:23

    You could try something like this:

    <script>
        var aCalls = 0;
        var bCalls = 0;
        function a()
        {
            aCalls = aCalls + 1;
            alert(aCalls);
        }
        function b()
        {
            bCalls = bCalls + 1;
            alert(bCalls);
        }
    </script>
    
    0 讨论(0)
  • 2021-01-21 12:39

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

    _calls = {}
    
    profile = function(fn) {
        return function() {
            _calls[fn.name] = (_calls[fn.name] || 0) + 1;
            return fn.apply(this, arguments);
        }
    }
    
    function foo() {
        bar()
        bar()
    }
    
    function bar() {
    }
    
    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).

    0 讨论(0)
  • 2021-01-21 12:41
    var count = 0;
    
    function myfunction()
    {
        count++;
        alert( "Function called " + count);
    }
    
    
    myfunction();
    myfunction();
    

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

    0 讨论(0)
  • 2021-01-21 12:42

    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)

    0 讨论(0)
提交回复
热议问题