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浏览网页的过程中,平均文件IO:378.87次/秒

    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,这里不允许我发这么大的文件,我就不发送上来了。如果您对数据有疑问,大可自己用文中介绍的方法自己动手重现。)

    最后,祝大家中秋快乐。

posted @ 2008-09-12 12:10  Wuya  阅读(3028)  评论(9编辑  收藏  举报