js性能优化和内存泄露问题及检测分析工具
- 性能优化ajax工具
diviefirebug
- web性能分析工具YSlow
performance
性能评估打分,右击箭头可看到改进建议。stats
缓存状态分析,传输内容分析。components
所有加载内容分析,可以查看传输速度,找出页面访问慢的瓶颈。tools
可以查看js和css,并打印页面评估报告。内存泄露检测工具
sIEve
sIEve
是基于IE
的内存泄露检测工具,需要下载运行,可以查看dom孤立节点和内存泄露及内存使用情况。
列出当前页面内所有dom节点的基本信息(html id style 等)
页面内所有dom节点的高级信息 (内存占用,数量,节点的引用)
可以查找出页面中的孤立节点
可以查找出页面中的循环引用
- 可以查找出页面中产生内存泄露的节点
- 内存泄露提示工具
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。