TL; DR: 我终于找到了导致Windows 7中这个错误的原因(当然还有所有其他Windows版本)。实际上它是关于GDI对象的。
当GDI对象的数量达到10 000时,出现错误,Chrome崩溃了几次。现在,我想知道它是否是Chrome中的一个错误,或者它是一个插件/扩展错误。
要在任务管理器中查看GDI对象,请单击菜单“显示”→“选择列...”→选中“GDI对象”复选框。
我在Windows XP SP3上遇到过IE(我想是v7,或许是6)的这种错误。
我也经历过Chrome浏览器,但仅限于Windows 7家庭高级版。
我不认为反病毒是导致这种情况的原因,因为我在安装了官方Windows 7家庭高级版的新笔记本电脑(上个月购买)上遇到了这个问题,我现在从未安装任何防病毒软件。 。(甚至安装和删除!)
这个bug怎么出现给我:
首先,当这个“bug”出现时我从未打开过数百个标签但是每次浏览器都运行了很长时间(打开和关闭了很多标签)。 IE也是如此。
当我尝试下载任何内容(类似的问题打开一个新选项卡)时,没有出现“保存”对话框(没有足够的GUI句柄?)。浏览器似乎被冻结但是当我在Chrome顶部移动另一个窗口时,我可以猜出保存对话框的框架/边框,因为有刷新错误。因此,对话框没有显示,但无论如何它都被“显示”了。我最终按下了escape,对话框关闭,浏览器“解冻”。
目前我的浏览器Iron(基于Chromium的Chrome浏览器)打开了31个标签,拥有大部分句柄的进程有29203个句柄,第二个进程有2667个句柄,然后 explorer.exe
有1392个手柄等。我没有GUI处理问题。
当我遇到这个问题时,Iron只有大约7000个句柄,所以认为它是一个句柄问题或浏览器可能管理不当的任何句柄泄漏是没有意义的。
我认为这是Windows的问题..也许是一个手柄回收系统,我不知道。
注意:当我在Windows 7上遇到此问题时,我运行了任务管理器,并且它显示正确。在Windows XP(使用IE)上,而不是在这台笔记本电脑上,任务管理器也遇到了问题。我看不到任何进程,因为没有显示包含进程和列的网格!实际上,在关闭IE并释放所有句柄之前,我无法在此计算机上运行任何程序。
在Windows 7上(使用Chrome问题),GUI处理资源似乎是孤立的,因为我可以看到任务管理器并运行任何其他程序,而没有此GUI处理饥饿/短缺。
GUI句柄问题仅限于Iron。
由于我在Windows XP上从未遇到过Iron这个问题,所以这个问题可能是因为插件。