一、統計函式執行次數
常規的方法可以使用 console.log 輸出來肉眼計算有多少個輸出
不過在chrome中內建了乙個 console.count 方法,可以統計乙個字串輸出的次數。我們可以利用這個來間接地統計函式的執行次數
function
somefunction
() function
otherfunction
() somefunction(); // some 已經執行: 1
somefunction(); // some 已經執行: 2
otherfunction(); // other 已經執行: 1
console.count(); // default: 1
console.count(); // default: 2
複製**
不帶引數則為 default 值,否則將會輸出該字串的執行次數,觀測起來還是挺方便的
當然,除了輸出次數之外,還想獲取乙個純粹的次數值,可以用裝飾器將函式包裝一下,內部使用物件儲存呼叫次數即可
var getfuncalltimes = (function
() }; }
// 執行次數
var funtimes = {};
// 給fun新增裝飾器,fun執行前將進行計數累加
return
function(fun, funname)
// 繫結
funtimes[funname] = decoratorbefore(fun, function
() );
// 定義函式的值為計數值(初始化)
funtimes[funname].calltimes = 0;
return funtimes[funname];
}})();
function
somefunction
() function
otherfunction
() somefunction = getfuncalltimes(somefunction, 'somefunction');
somefunction(); // count 1
somefunction(); // count 2
somefunction(); // count 3
somefunction(); // count 4
console.log(somefunction.calltimes); // 4
otherfunction = getfuncalltimes(otherfunction);
otherfunction(); // count 1
console.log(otherfunction.calltimes); // 1
otherfunction(); // count 2
console.log(otherfunction.calltimes); // 2
複製**
如何控制函式的呼叫次數
也可以通過閉包來控制函式的執行次數
function
somefunction
() function
otherfunction
() function
setfuncallmaxtimes(fun, times, nextfun) else
if (nextfun && typeof nextfun === 'function')
};}var fun = setfuncallmaxtimes(somefunction, 3, otherfunction);
fun(); // 1
fun(); // 1
fun(); // 1
fun(); // 2
fun(); // 2
複製**
Python中統計函式的執行耗時
import time def time me fn start time.clock fn args,kwargs print s cost s second fn.name time.clock start 這個裝飾器可以在方便地統計函式執行的耗時。用來分析指令碼的效能是最好不過了。這樣用 ti...
Python中統計函式執行耗時的方法
import time def time me fn def wrapper args,kwargs start time.clock fn程式設計客棧 args,kwargs print s cost s second fn.name time.clock start return wrapper...
在海量資料中統計出現次數最多的n個
在海量資料中統計出現次數最多的n個 分兩種情況,1 如果資料能夠在記憶體中放下,比如如果海量資料是ip位址,最多有4g個ip位址,每個ip位址佔4個位元組 需要記憶體16g,如果內存在幾十g,則完全可以全部裝入記憶體,直接讀取大檔案,然後建立乙個hash表,統計次數,最後再用堆統計最大的n個 2 如...