gpt4 book ai didi

javascript - 自动测量功能时间

转载 作者:行者123 更新时间:2023-11-30 17:10:09 24 4
gpt4 key购买 nike

我有 500 多个运行客户端的 JavaScript 函数。我想测量客户端上每个功能的执行时间和相对频率,并将统计数据发送到服务器,以便找出需要首先优化哪些功能。

所有函数都是全局对象的一部分(如果有帮助的话)。

如何进行自动测量?我需要一个全局函数来监视所有其他函数并对其进行测量。这可能吗?

最佳答案

像这样的东西应该可以解决问题(还没有测试过)

var profiler = (function(win){
var collector = {},
wrap = function(fn, name) {
var report = {calls: 0, times: []}; //create new report obj
collector[name] = report; //save it to collector
return function() {
var start, end, out;
report.calls++; //number of calls
start = performance.now();
out = fn.apply(this, arguments);
end = performance.now();
report.times.push(end - start); //time statistics
return out;
};
};

win.addEventListener('unload', function(){/*send collector here*/});

return function() {
[].forEach.call(arguments, function(holder, i) { //iterate over all namespaces
Object.keys(holder).forEach(function(key){ //iterate over every member
var fn = holder[key];
if(typeof fn === 'function') {
holder[key] = wrap(fn, i + '_' + key); //replace member
}
});
});
};

}(window));

用法

profiler(namespace1, namespace2 ...);

关于javascript - 自动测量功能时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com