Firefox中的javascript配置文件

Firefox中的javascript配置文件,javascript,profiling,instrumentation,Javascript,Profiling,Instrumentation,我知道有些人已经问了关于js配置文件的问题,但如果我理解正确,这不是我需要的 我想跟踪javascript的执行情况,以收集以下信息:1调用哪个函数,2调用函数的时间,3函数的执行时间 我想在线收集有关已部署代码的信息,但不想在内部收集。因此,权衡必须是轻量级的。另外,我不想在调用函数的位置前后手动添加一行。但是,如果有一种方法可以动态地检测代码,那就太好了 提前谢谢 我认为没有任何系统可以让JavaScript自动跟踪函数启动和停止的时间。这可能是你必须自己添加的内容。如果这是你所需要的,你可

我知道有些人已经问了关于js配置文件的问题,但如果我理解正确,这不是我需要的

我想跟踪javascript的执行情况,以收集以下信息:1调用哪个函数,2调用函数的时间,3函数的执行时间

我想在线收集有关已部署代码的信息,但不想在内部收集。因此,权衡必须是轻量级的。另外,我不想在调用函数的位置前后手动添加一行。但是,如果有一种方法可以动态地检测代码,那就太好了


提前谢谢

我认为没有任何系统可以让JavaScript自动跟踪函数启动和停止的时间。这可能是你必须自己添加的内容。如果这是你所需要的,你可能想考虑使用PHP来服务你的JavaScript,并使用正则表达式来找到每个函数的开始和结束。 您的RegExp可能看起来完全未经测试,因此您必须进行以下实验:

/function [A-Za-z_$][A-Za-z0-9_$]*{(.*?)}/i
一旦访问了函数的内部,就可以用函数替换该值,以跟踪其围绕原始函数定义的开始和结束

这样做的好处是完全按照您的意愿执行,而不必担心修改js代码的功能。这是服务器将完全处理的事情

或者,不要直接调用函数,而是使用包装函数:

function wrapFunction( func, context, argList )
{ 
    // Replace with however you are storing this.
    console.log( new Date().getTime() );
    func.apply( context, argList );
    console.log( new Date().getTime() );
}
这样做的好处是比让服务器为您更新JS要干净得多。不幸的是,这也意味着必须手动重新编写JS

我的建议是简单地修改日志语法并使用它。大多数记录器将输出时间戳、上下文、级别和特定消息。如果您只需在函数的开头和结尾调用记录器,它将完全满足您的要求。此外,由于许多都是可配置的,您可以让它显示在Firefox的JS控制台上,向服务器发送信息,或者完全禁用它(如果您选择)

这里有一个JS日志记录者列表:

不幸的是,这需要您手动更新所有内容,但这似乎是从开箱即用中获取90%所需内容的最简单方法。

也许中的探查器可以帮助您跟踪较慢的功能

详细说明分析选项。索引:3:20

console.profile([title])
//also see
console.trace()

克里斯,谢谢你的建议!同时,我刚刚发现了一些很酷的代码,非常鼓舞人心。请看这里: