Google Chrome动了我的奶酪?
一、前言
随着Google Chrome浏览器的发布,突然涌现了很多跟Chrome相关的文章,特别是《Chrome的居心叵测》和《对“Chrome居心叵测”一文之深入分析》令我感触颇深。我是凡人,所以也来凑下热闹 ^_^ 。本文主要记述Chrome在安装、运行、卸载过程中的一些行为和结果,而尽量不对其进行主观评价。
二、工具
在动手试验之前,先介绍下需要使用的三种工具,分别是:FilMon、RegMon和Ultra Network Sniffer。详细的用法请大家自己去搜索,我这里只是简要的介绍下。
(1)文件监视工具——FilMon
FilMon是File Monitor的缩写,意即文件监视器,它可以监视系统中的所有文件操作,包括打开、读、写、关闭等。通过过滤设置,我们可以只观测Chrome的文件操作行为。我在测试时的设置如下:(a)包含:“*” ;(b)排除:“Explorer.EXE;Regmon.exe;svchost.exe;wmiprvse.exe;360tray.exe;Rtvscan.exe;lsass.exe;csrss.exe;realsched.exe;dexplore.exe;winlogon.exe;logon.scr”。以上设置跟系统相关,但是目标是只测试Chrome的行为。也许您会问,为什么不直接设置包含为“chrome”而设置了那么多排除项呢?哈哈,因为在安装Chrome的过程中,我发现同时有几个安装相关的进程,比如“chrome_installer.exe”和“setup.exe”等。我这里的原则是:去除干扰项,剩下的就是本文的讨论对象。
(2)注册表监视工具——RegMon
RegMon可以对注册表的所有操作进行监测,同样的,我设置了:(a)包含:“*”;(b)排除:“Explorer.EXE;svchost.exe;Filemon.exe;csrss.exe;notepad.exe;wmiprvse.exe;Rtvscan.exe;spoolsv.exe;VPTray.exe;winlogon.exe;360tray.exe;Regmon.exe;System;lsass.exe;realsched.exe;dexplore.exe;LUALL.EXE;logon.scr”。设置的原则同FilMon,这里不再重述。
(3)网络截包监视工具——Ultra Network Sniffer
Ultra Network Sniffer可以截取通过本机的所有网络包,并生成报告,通过设定指定网卡、指定进程和网络协议,可以得到我们想要的结果。我这里只有一块物理网卡Realtek 8139,没说的,当然选它了;进程选择我们的观测对象chrome.exe;而网络协议则不做筛选,以反映chrome的所有网络行为。
三、实验及数据
看完上述工具介绍之后,勤劳而聪明的您也许已经自动动手实验了。而我分安装、运行、卸载三个部分对chrome进行分析,其中运行部分分别用chrome浏览了几个有代表性的网站,如:技术http://www.cnblogs.com/、游戏http://www.blizzard.com/、视频http://www.tudou.com/、音乐mp3.baidu.com、新闻news.sina.com.cn。这些网站在打开之后,都运行了10分钟左右,然后将其关闭。
(1)安装
当您运行安装程序“chrome_installer.exe”之后,chrome便已经完全安装到当前用户的“Application Data”目录中,在后面的弹出窗口中无论选择确定或者取消都不影响这一点。在我的电脑中,生成的目录“C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome”里,有两个子目录“Application”和“User Data”。
(a)其中“Application”目录存放的chrome可执行程序及一些动态链接库,占用空间44.8M,不过这里面有一个名为“Installer”的子目录在运行期并不需要,浪费了我们22.3M的空间。
(b)“User Data”目录里有两个比较重要的东西,文件“Safe Browsing”和目录“Cache”,最初占用空间6.58M;“Safe Browsing”从字面上看是安全浏览的意思,如果您打开了chrome浏览器,并且网络是连通的,那么“Safe Browsing”会持续增长,从我上午安装好chrome到现在下午3点半,该文件已经达到了38.5M,或许是因为google的不安全网站数据库比较大,它还在源源不断的下载不良网站数据到我的电脑中;“Cache”是缓存目录,会随着您浏览不同的网页数目而变大。
(c)在安装的过程中,会在临时目录“C:\Documents and Settings\Administrator\Local Settings\Temp”中创建若干临时文件,以及一个子目录“chrome_219”,其中子目录“chrome_219”会在安装之后会被删除,而其它临时文件则遗留在临时目录中。
(d)在安装过程中,记录有77785次IO操作(包括create,open,read,write,close,delete,query等),FilMon生成的日志文本文件有12.3M,不能直接用excel 2000完全加载分析,等我想到更好的分析方法再到这里补充分析结果。目前的思路是尝试使用更高版本的excel,或者用编程的方式将日志转换成SQL数据表,然后再进行分析。
(e)在安装过程中的注册表操作15772次,没有增加自动运行的启动程序和服务。
(f)总结以上几点:安装目录不可选;刚装完占用51.4M硬盘空间;在使用的过程中会增肥;没有增加启动程序和服务。
(2)运行
Chrome浏览器在运行过程中都做了什么呢?为此我测试了它在浏览不同网页时的表现,每种测试都执行打开浏览器,输入并浏览一个网页,关闭浏览器的过程,每次耗时10分钟左右;测试的网页包括:技术类的博客园http://www.cnblogs.com/、游戏类的暴雪http://www.blizzard.com/、视频类的土豆http://www.tudou.com/、音乐类的百度mp3.baidu.com、以及新闻类的新浪新闻news.sina.com.cn。
(a)测试得到的文件io和注册表操作数据如下表:
测试网页 |
文件IO次数 |
注册表操作次数 |
测试时间 |
测试时长 |
博客园 |
140678 |
3003 |
9:18:58到 9:28:38 |
9:40 |
暴雪 |
217082 |
2696 |
9:30:42到 9:41:10 |
10:28 |
土豆 |
164356 |
2980 |
9:43:50到 9:51:52 |
8:02 |
百度MP3 |
428937 |
2796 |
9:58:00到 10:15:51 |
17:51 |
新浪新闻 |
351122 |
3217 |
10:20:04到 10:31:20 |
11:16 |
合计 |
1302175 |
14692 |
|
57:17 |
Chrome浏览器在刚运行时,会加载系统目录下的多个动态链接库,然后会访问安装目录中的“Cache”目录多次,绝大部分的IO操作都集中在“Safe Browsing”和“Safe Browsing-journal”两个文件;没有发现chrome访问硬盘中的其它目录和文件。
(b)Chrome的网络通信状况
在Chrome以HTTP方式获取到我们所查看的网页之后,它会频繁的访问64.233.189.102(端口:80,协议:HTTP,域名:safebrowsing.clients.google.com)和74.125.11.94(端口:80,协议:HTTP,域名:static.cache.l.google.com)。从域名的字面含义来看,safebrowsing.clients.google.com是安全浏览服务器,static.cache.l.google.com是缓存服务器。我从2008年9月12日10:55:34.200一直让chrome开始测试到2008年9月14日10:50:45.121,一共截取到10176个数据包。Ultra Network Sniffer保存的日志文件不能方便的直接用数据库软件进行导入分析,这里我暂时偷懒先抽取了第50~99条记录进行分析,以后如果有时间我想办法把所有的记录都统计出来。这50条记录的统计结果如下表:
远程服务器 |
流入本机数据包数目 |
流出本机数据包数目 |
小计 |
127.0.0.1 |
4 |
4 |
8 |
74.125.11.94 |
40 |
2 |
42 |
64.233.189.102 |
0 |
0 |
0 |
合计 |
44 |
6 |
50 |
注:127.0.0.1是本机,这部分数据没有含义;流出到74.125.11.94的2个数据包都是HTTP GET请求,从74.125.11.94
流入的40个数据包都是HTTP头和HTTP Binary Data。
从上表我们可以看出:(1)从本机流出的数据包很少,说明chrome几乎不将本机的资料传出;(2)流入的数据包都是二进制文件,不知道具体是什么内容。
(c)Internet Explorer的文件IO状况
在测试的过程中,我还顺便测试了一下IE6在浏览www.cnblogs.com这个页面的文件IO状况,用时10分22秒,共9351次文件IO操作,大多操作集中在“C:\Documents and Settings\Administrator\Local Settings\History\History.IE5\”、“C:\Documents and Settings\Administrator\Cookies\”、“C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\Content.IE5\”和“C:\Program Files\Thunder Network\Thunder\Profiles\”等目录的文件,其中Thunder Network是讯雷的默认安装目录。
对比IE和chrome,chrome的文件IO操作是IE的10倍以上。
(3)卸载
卸载chrome比较简单,点击开始菜单的“卸载谷歌浏览器”即可快速的删除掉chrome,不需要重新启动电脑。卸载完之后会弹出一个要求填写卸载原因的网页,不过填与不填结果都一样,chrome已经卸载完成了。卸载之后会在chrome的安装目录内遗留“User Data”这个子目录,里面保留有用户的设置或者是它一厢情愿的默认设置 和 Safe Browsing文件以及缓存文件,该目录的大小跟你使用chrome的频繁程度及时间有关,我有次卸载之后占我10.6M空间,刚才卸载之后占我71.8M空间。
四、结论
非常感谢您能看完本文,我遵守尽量不做评论的约定不下结论。不过我相信您心中已经有了自己的看法,如果您愿意跟别人分享您的看法,请在后面留下您的评论。
(注:实验数据有380M,这里不允许我发这么大的文件,我就不发送上来了。如果您对数据有疑问,大可自己用文中介绍的方法自己动手重现。)
最后,祝大家中秋快乐。