这两天在几家客户那里介绍微软的Windows Azure,有几个精彩的demo我还录制了视频。没成想迅雷播放器在个人Windows 10预览版上彷佛得了水土不服之症,每次打开视频,最起码要卡10~15秒钟才正常开始播放,让我有一种很强的挫败感。web
做为一名IT技术人员,天然不能无视这个故障,也不能简单地重装其余播放器。----深刻其虎穴,捉得虎子,才是硬道理。安全
Windows工程师手边最好的排错工具,固然是Sysinternals Suite。有性能问题,首先得找Process Monitor,因此赶忙用来抓迅雷hang的时候,背后都发生了什么。服务器
结果很使人沮丧,检查的结果,除了发现如下大量访问CodePage注册表键值的行为,并无发现太多有用的信息。
那就只能用Procdump来抓取迅雷hang时背后所发生的事情了。Procdump能够基于特定事件自动生成进程的dump文件,例如在进程占用指定数量的CPU、或者占用指定数量的内存时自动抓dump。在这里咱们指定让Procdump在迅雷hang住的时候自动抓dump:微信
procdump.exe" -h -n 2 xmp xmp.dump框架
其中的-h是发现进程hang时能够自动抓dump,默认是5秒。-n是指定抓多少个dump,xmp是迅雷的进程名称,而最后是dump文件名称。ide
很快就能够生成dump文件,而后用Windbg将其打开进行调试,一开始会提示不少dll等文件找不到符号文件,这是正常的,微软的符号服务器不可能有迅雷的符号文件。从如下的线程堆栈能够看出,当XmpUtility中的某个函数调用ieframe!IEGetProtectedModeCookie函数时发生了问题。函数
接下来能够看到Windbg提示ieframe!IEGetProtectedModeCookie的问题。盆盆推断这是由于迅雷播放器须要调用IE框架显示所谓的片库等内容,因为代码有问题,和Windows 10的IE保护模式有冲突。
工具
要临时解决这个问题,很简单,只需禁用IE保护模式,或者把迅雷的网站加入到可信任站点(可信任站点默认禁用IE保护模式)。可是须要注意,禁用IE保护模式,会提升IE的安全风险!性能
因此最好的方法,是迅雷工程师能尽快修改代码,以便能和IE保护模式兼容。我已经给迅雷发了微博消息,可是到今天为止已经2个月,还没获得回复。网站
若是您以为华来四还不错,那就微信扫描如下的二维码关注吧。也能够直接添加微信公众号:sysinternal。