该死的msn space,如果存的时候出了错误,就再也找不回来了。
最近研究了一下关于内存和performance方面的一点东西,发现maxthon这个很popular的浏览器的一个有趣的现象。先是说说windows task manager的那些terminology。
Mem Usage = Working Set = 这个程序在物理内存里占用的大小,大概等于linux的RSS
VM Size = Virtual Memory Size = Private Bytes = 这个程序申请的内存大小,可能在内存里,也可能在硬盘上。
还有一个Virutual Size,是运行这个程序总共需要的内存大小。
那么Maxthon这个浏览器,他的Mem Usage总是很小,所以很多人以为这个浏览器真的占用内存比较小,不过仔细观察就会发现,他的Mem Usage总是很快的涨,到20多M,就快速的下跌一次。而且,他的page faults总是很快的增长,开不到一个小时就超过了使用率最高的explorer,成为系统第一个高的page faults。这个说明它为了让自己在task manager里显示占用的内存比较小,每过一段时间就主动的把内存里面的东西都swap出去,但是由于浏览器还在运行,所以操作系统就疯狂的产生page fault,再从硬盘读入被换出的页面,这个感觉不是很厚道。。。难怪我的笔记本硬盘没事总是嘎卡两声。。。
于是又比较了一下firefox, maxthon和ie。结果如下:(内存都是K为单位)
| Browser | Page Faults | Private Bytes | Virtual Size | Working Set | User objects | GDI objects | Threads |
|---|---|---|---|---|---|---|---|
| 刚启动 | |||||||
| Firefox | 4850 | 8536 | 55948 | 17008 | 37 | 68 | 6 |
| maxthon | 8485 | 9808 | 101272 | 4948 | 250 | 347 | 12 |
| IE | 4616 | 7948 | 82952 | 16332 | 117 | 184 | 7 |
| 5分钟后,打开news.sina.com.cn | |||||||
| Firefox | 9419 | 17520 | 83176 | 25408 | 73 | 172 | 7 |
| maxthon | 27974 | 35240 | 149552 | 17448 | 300 | 426 | 18 |
| IE | 15509 | 38792 | 137204 | 49380 | 166 | 280 | 17 |
看起来maxthon/ie占用的virtual size和private bytes都比较大,而working set maxthon最小是以大量的page fault为代价的,嗯,firefox表现还不错,除了不能在msnspace发信以外,没太多的缺点了。。1.5的确快了不少,而且,对新的web标准支持很好,比如。。哈哈,开始鼓吹firefox了。。。不过对ie的数据有个不公平的地方是,其他两个都有adblocker,block了不少flash和图片。。。
不知道其他一些浏览器如何,比如opera,或者,safari?