## 性能测试工具
> * js性能优化和内存泄露问题及检测分析工具
>
>
> * 性能优化ajax工具`diviefirebug`
> * [web性能分析工具YSlow](http://developer.yahoo.com/yslow/ "Google")
> * `performance`性能评估打分,右击箭头可看到改进建议。
> * `stats`缓存状态分析,传输内容分析。
> * `components`所有加载内容分析,可以查看传输速度,找出页面访问慢的瓶颈。
> * `tools`可以查看js和css,并打印页面评估报告。
> * 内存泄露检测工具`sIEve`
> * `sIEve`是基于`IE`的内存泄露检测工具,需要下载运行,可以查看dom孤立节点和内存泄露及内存使用情况。
>
> 1. 列出当前页面内所有dom节点的基本信息(html id style 等)
>
> 2. 页面内所有dom节点的高级信息 (内存占用,数量,节点的引用)
>
> 3. 可以查找出页面中的孤立节点
>
> 4. 可以查找出页面中的循环引用
>
> 5. 可以查找出页面中产生内存泄露的节点
> * 内存泄露提示工具`leak monitor`
> * `leak monitor`在安装后,当离开一个页面时,比如关闭窗口,如果页面有内存泄露,会弹出一个文本框进行即时提示。
> * 代码压缩工具
>
>
> * YUI压缩工具
> * Dean Edwards Packer
> * JSMin
> * `Blink/Webkit`浏览器
> * 在`Blink/Webkit`浏览器中(`Chrome`, `Safari`, `Opera`),我们可以借助其中的`Developer Tools`的`Profiles`工具来对我们的程序进行内存检查。
>
>
>
> ~~~
> Developer Tools - Profiles
> ~~~
>
>
> * `Node.js`中的内存检查
>
>
> * 在`Node.js`中,我们可以使用`node-heapdump`和`node-memwatch`模块进行内存检查。
>
>
>
> ~~~
> var heapdump = require('heapdump');
> var fs = require('fs');
> var path = require('path');
> fs.writeFileSync(path.join(__dirname, 'app.pid'), process.pid);
> ~~~
>
>
>
> 在业务代码中引入`node-heapdump`之后,我们需要在某个运行时期,向`Node.js`进程发送`SIGUSR2`信号,让`node-heapdump`抓拍一份堆内存的快照。
>
>
>
> ~~~
> $ kill -USR2 (cat app.pid)
> ~~~
>
>
>
> 这样在文件目录下会有一个以`heapdump-<sec>.<usec>.heapsnapshot`格式命名的快照文件,我们可以使用浏览器的`Developer Tools`中的`Profiles`工具将其打开,并进行检查。
>
>
> * 分析浏览器提供的Waterfall图片来思考优化入口。
> * 新的测试手段(Navigation, Resource, 和User timing。