如何度量javascript解析时间

如何度量javascript解析时间,javascript,Javascript,在我们公司,我们将每个Javascript文件合并成一个大的(约700kb,但不断增长)缩小和压缩的Javascript文件。我试图评估每个页面使用一个大Javascript文件(缩小和压缩)与使用多个Javascript文件(每个页面一个)之间的性能差异 一个明显的区别是,大的Javascript文件在第一个页面请求中加载后可以被浏览器缓存,并在之后产生很少的开销,而当使用多个js文件时,每个不同的页面上至少会有一个未缓存的get请求。因此,我将用较慢的第一次初始页面加载来交换较慢的后续初始页

在我们公司,我们将每个Javascript文件合并成一个大的(约700kb,但不断增长)缩小和压缩的Javascript文件。我试图评估每个页面使用一个大Javascript文件(缩小和压缩)与使用多个Javascript文件(每个页面一个)之间的性能差异

一个明显的区别是,大的Javascript文件在第一个页面请求中加载后可以被浏览器缓存,并在之后产生很少的开销,而当使用多个js文件时,每个不同的页面上至少会有一个未缓存的get请求。因此,我将用较慢的第一次初始页面加载来交换较慢的后续初始页面加载

为了找出缓慢的初始页面加载(使用一个大的Javascript文件)何时会出现问题,足以证明将组合文件分解为更小的文件并更改构建过程的合理性,我想知道解析代码需要多长时间,所以我可以估计总的加载和解析时间

到目前为止,我的方法是向测试页面添加一个脚本标记,该标记占用当前时间,用Javascript附加一个较大的脚本,然后再像这样测量时间:

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script')
script.setAttribute('type', 'text/javascript');
script.src = 'path/700kbCombineFile.js';
start_time = new Date().getTime();
head.appendChild(script);
在700kbCombineFile.js的末尾,我附加了:

console.log(new Date().getTime() - start_time)
然后我减去从firebug获得的网络传输时间,对于700 kb的文件接收大约700毫秒,对于300 kb的文件接收大约300毫秒

这种方法有意义吗?为什么不呢?有没有更好的方法/工具来做这件事?

我想
console.time(“Parsetime”)

console.timeEnd(“Parsetime”)

提供比日期对象更精确的测量值,

不同浏览器之间解析JavaScript所需的时间差异很大

您得到的是我能想到的最好的方法来测量解析时间,但是,我想问一下,这是否是判断哪种方法更有效的最好方法

<>强>个人< /强>,我会考虑<代码>加载> /COD>事件在<代码>窗口< /代码>上所占用的时间,从页面被请求的时间上更好地测量要去哪种方式。


下载页面所需的时间很重要,并且文件总是在第一次加载后被缓存,这只有在完美的世界中才是真实的。

firebug没有告诉您http加载时间和执行时间吗?我认为firebug没有告诉您执行时间。无论如何,我想知道解析时间。也就是说,解析javascript(而不是执行时间)所需的时间opera的Dragonfly既可以向您显示HTTP连接的准确信息,也可以在评测时区分“脚本编译”和“线程执行”。您可以这样做:@Bergi Dragonfly看起来很有希望(我到目前为止完全忽略了opera),然而,使用我的方法,我得到了290毫秒的结果,而dragonfly报告的总加载时间为30毫秒,如果加起来,读取和处理时间为12毫秒。我想知道这意味着什么……那么你将如何判断每种方法的有效性呢?页面请求和加载事件之间的时间是否包括加载所有其他资源,如html、图像等?是的,加载时间当然很重要,但我已经知道加载时间。我现在需要解析时间,因为我想我需要这两个时间。这不是唯一的执行时间吗?