虽然Chrome浏览器没有完全解决内存尺寸问题,但是,它通过减少碎片来控制这个问题。在传统的浏览器中,浏览器为一个线程分配一套虚拟内存。当然,每一个标签都占用这个总内存集中的一个内存块。随着你打开更多的标签,系统将分配更多的内存。但是,在你关闭标签的时候,内存没有完全恢复,不足以运行未来的标签。你最终将遇到标准的内存碎片问题。
但是,在Chrome浏览器中,每一个标签都有自己的线程。你没有看错,不是每一个Chrome的窗口,而是每一个标签。Cogswell说,我做了20多年的开发工作。我从来没有看到一个窗口能够托管多个线程。但是,Chrome浏览器确实做到了。
Cogswell说,如果我目前的标签上有一个网页,我在地址栏输入一个新的URL地址的时候,与那个网页有关的 chrome.exe命令请求就关闭了,并且开始一个新的chrome.exe命令请求。这样做是很完美的:不用输入命令清除分配给已经关闭的网页的内 存,Chrome浏览器将完全消除整个线程,然后开始一个新的线程。这是Chrome浏览器阻止内存碎片以及保护和隔离每一个网页的又一种方法。
更有趣的是在我装载雅虎网站www.yahoo.com的时候发现了一个奇怪的现象。我看到启动了两个线程。但是,对于谷歌搜索引擎www.google.com那种比较小的网页,我仅看到了一个流程。当我查看命令行的时候我发现原来输入命令行参数设置了一个插件。那是一个叫做插件路径的额外的参数,设置是c:\windows\system32\macromed\flash\npswf32.dll
那是Flash播放器。Chrome为嵌入在网页的Flash播放器启动了另一个线程。当我在Chrome浏览器 中保持雅虎网页处于打开状态并且关闭分配给Flash播放器的线程的时候,Chrome在雅虎网页上面显示一个提示并且用一个Flash标识取代了那个 Flash窗口,Flash标识上面有一个失望的面孔。见图1。
可以肯定的是雅虎的网页仍然可以使用。换句话说,一个插件崩溃了不会造成浏览器崩溃。对于一次只喜欢打开少量标签的用户来说,这是很好的。为了保证测试的完整性,测试人员关闭了雅虎网页的线程。这一次,整个网页都变黑了,并且网页上有一个失望的表情和信息。见图2
同时,其它网页仍在运行。实际上,Chrome浏览器有自己的任务管理器。当在Chrome浏览器中的时候,按下Shift+Esc键可以打开这个任务管理器。这个任务管理器甚至能够让你关闭Chrome浏览器中的线程。
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com |
关注天下网吧微信,了解网吧网咖经营管理,安装维护: