前言 这篇文章最初由盆盆发表在华来四微信公众号(微信号:sysinternal)。Edge是Windows 10里的最新浏览器,听说要取代统治已久的IE浏览器!那么咱们来看看这个最新的Edge浏览器和Chrome在性能和安全性方面的到底孰优孰劣呢?对了,盆盆还会顺手捎带Cortana的部分特性。浏览器
盆盆使用的Windows 10已经升级到最新的10061版本。里面自带了微软最新的Edge浏览器,听说从此将会取代IE浏览器。安全
那么这款最新的Edge浏览器,和Chrome相比,在性能和安全性方面到底孰优孰劣呢?微信
沙盒技术网络
你们都知道Chrome浏览器实现了自有的沙盒(sandbox)技术,所谓沙盒,从安全的角度看和Docker相似,都是一种进程隔离技术。ide
如下是Chrome沙盒原理示意图,具体解释能够参考如下网页。大体意思是Chrome会有一个高级进程,充当代理(Broker)。而每一个网页,则独立封装在一个沙盒进程中,而相似保存文件等高特权的操做,都由Broker进程代劳。Broker进程和沙盒之间经过IPC机制通讯。工具
https://www.chromium.org/developers/design-documents/sandbox 性能
而Edge浏览器一样采用Windows 10自有的沙盒技术,叫作App Container技术。一样会有一个高级进程,充当代理,名称叫作browser_broker.exe。而每一个网页对应的进程叫作Edge_edge.exe。代理进程负责启动网页,同时执行相似文件保存等高特权动做。spa
对于Chrome来讲,其Flash支持也做为一个独立的沙盒进程来实现,这样安全性更高。因为Chrome的子进程名称彻底同样,因此能够从其线程中获知其Flash支持的进程是哪个。线程
而对于Edge来讲,其Flash支持也是做为一个普通的独立进程而存在,但并非沙盒进程。代理
性能对比
Edge浏览器和Chrome到底谁性能更好?
其实比较难对比,由于二者的渲染引擎不一样,得看网页自己的支持,不能光看内存占用等指标。
为了公平起见,这里对空白网页的两个浏览器的内存占用进行比较,同时再比较启动新浪微博时的内存占用。
Edge
当启动空白网页时,Edge一共启动5个进程,其内存占用的截图以下。这些进程一共占用约43MB内存。
当咱们把鼠标焦点指向地址栏并准备输入内容时,Edge会启动一个新的Edge_edge进程,其父进程为Edge。该进程专门用来接收地址栏操做。
输入新浪微博地址并回车,再查看内存占用,如截图所示。因为地址栏对应的进程过段时间会退出(也能够手动关闭)。因此一共消耗内存为182MB,若是算上地址栏进程,则一共为223MB。
整理以下表所示。
Chrome
同理统计Chome的空白网页内存占用,共计消耗207MB内存,比Edge多约150MB。
当打开新浪微博时,共计消耗338MB内存,若是不算Edge的地址栏进程,则多出约150MB内存,若是算上的话,则多出约110MB内存。
整理以下表所示。
这里仍是得说明,内存占用不能做为二者性能的最终要素,不过Edge还有杀手锏。当咱们把网页最小化后,咱们会发现其对应的Edge进程立刻暂停,从而把CPU占有率降到0。若是恢复网页大小,则进程当即恢复运行。
其实Edge浏览器,彻底是一个Metro风格的进程。
盆盆点评 二者的性能比较,单就访问微博的内存占用而言,Edge更胜一筹。
安全对比
接下来再看看Edge和Chrome安全能力的对比。
Edge
Edge采用了Windows 10 Metro风格进程的沙盒技术,能够看到其网页进程的完整性级别是Low,表示其采用了Windows保护模式。
盆盆从2005年开始就开始研究保护模式,当时还帮助支付宝解决和IE的兼容性问题。完整性级别为Low的进程,只能访问如下资源:
.Read access to most files
.Write access to %USER PROFILE%\AppData\LocalLow
.Read access to most of the registry
.Write access to HKEY_CURRENT_USER\Software\AppDataLow
.Clipboard (copy and paste for certain formats)
.Remote procedure call (RPC)
.TCP/IP Sockets
.Window messages exposed via ChangeWindowMessageFilter
.Shared memory exposed via LI (low integrity) labels
.COM interfaces with LI (low integrity) launch activation rights
.Named pipes exposed via LI (low integrity) labels
同时在网页进程里,咱们还能够看到该进程所具备的资源访问能力,例如指定Internet链接、家庭和工做网络访问能力等等,如附图所示。
开始菜单里的Cortana也是采用相似的沙盒技术。
能够看到Cortana进程要求更多的资源访问能力。经过这种对进程的资源访问能力加以限制,可让Windows 10的沙盒进程得到更好的隔离能力。
再回到Edge的安全属性对话框,能够看到其中有一个S-15-2开头的SID被标记为AppContrainer。
除了采用保护模式和限制资源访问能力,Windows 10沙盒还利用了远程桌面的会话隔离技术。
用WinObj工具能够看到,在当前的用户会话1中多出了一个名为AppContrainerNamedObjects文件夹,Edge沙盒在其下建立了一个以上述S-1-15-2开头SID为名的子文件夹,Edge沙盒进程所需的事件、信号对象以及RPC控制对象都会放在这里。
Chrome
Chrome的沙盒技术利用了Windows自有的安全技术,能够看到其进程的安全级别比Chrome更低,没有任何特权,并且几乎全部的SID都标记为Deny。
同时若是查看网页进程的句柄,能够发现其没有用户桌面的访问能力,在以下的截图中,咱们能够看到该进程并无WinSta0窗口站的访问能力。根据谷歌官网的说法,这能够防止网页进程里可能存在的恶意代码向用户桌面发动粉碎***的可能。
可是盆盆不太清楚,既然网页进程没有用户桌面的句柄,那这个网页又是如何显示在用户桌面上的呢?不知道是否是经过IPC机制让Broker进程代劳,很显然Broker进程拥有用户桌面的句柄。
盆盆点评 二者的安全对比,Edge和Chrome都采用沙盒技术,都彻底知足用户安全浏览的需求。二者难分伯仲。