在高性能web测试工具推荐http://www.jb51.net/article/23034.htm中发现了dynaTrace 感觉很不错,不但可以检测资源加载瀑布图,而且还能监控页面呈现时间,CPU花销,JS分析和执行时间,CSS解析时间的等。http://www.ibm.com/developerworks/cn/web/1205_xieju_dtraceajax/ 文中介绍了详细的用法也很不错。
DAE区别于其它工具的主要特征: 深入分析JavaScript。通过检测事件触发和JavaScript API调用,时间线被分割成不同部分。它包含了HTTP瀑布图。另一个特征是可以保存DAE分析结果,这样你可以事后检查并且和同事分享它。它还有一些其它很有趣的特征,例如,自动将精简后的源码格式化,这样你可以在现场调试精简代码时,查看更易懂的版本,你还可以分析CPU占用和页面渲染性能
当需要分析JavaScript引起的性能问题时,dynaTrace Ajax Edition 包含了从高级调用到实际执行的代码详细信息,你可以查看到底是哪一行JavaScript代码导致了页面的性能瓶颈。后续考虑应用到现有项目测试中。
顺便介绍下BHO:
BHO(Browser Helper Object,浏览器辅助对象,简称BHO)
BHO是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVED Interface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行为,比如修改替换浏览器工具栏,添加自己的程序按钮等。这些在系统看来都是没有问题的。BHO原来的目的是为了更好的帮助程序员打造个性化浏览器,以及为程序提供更简洁的交互功能,现在很多IE个性化工具就是利用BHO的来实现。
浏览器能扩展BHO与ActiveX的区别:
Browser Extensions是一个统称,包括ActiveX Control和Browser Helper Object (BHO)。其他的Browser Extensions还包括Web Slices、搜索提供者、菜单扩展、工具栏扩展、Browser Band等等
ActiveX是微软的一个商标,什么东西都往里面套,但是按照通常的概念来说,是一个实现了IOleObject接口的OLE组件,需要有容器来装,在浏览器的上下文中,这个容器是Trident引擎里面的MSHTML文档对象,但是一般ActiveX也支持在其他程序里面使用,比如可以在开发程序的时候插入Windows Media Player播放器到界面上。广义的ActiveX只需要支持IUnknown就可以,比如微软的ADO,虽然叫ActiveX但是不需要OLE也可以用。一些ActiveX用Kill Bit声明自己不支持Internet Explorer的MSHTML作为容器。一个页面上可以有多个ActiveX,但是如果这个页面所在框架或者标签页浏览到另一个页面,页面上的ActiveX会随着文档一起被卸载。ActiveX可以通过编写网页代码来提示用户安装。
Browser Helper Object (BHO)是浏览器的扩展对象,只需要实现IObjectWithSite接口,IE会在标签页初始化的时候调用这个接口。BHO的宿主是标签页的IE自动化对象,而且也只支持这一种宿主。BHO在每个标签页只有一个实例,其生命期是随着标签页走的。BHO需要在标签页初始化之前就注册好。