Process Explorer是什么
问题描述
- 精选答案
-
时代的浪潮呼啸而去,Windows似乎已死在了沙滩上。今天已没有多少人还会从头到尾研读Windows时代下的那些经典书籍,以及MSDN了吧?这是由一个名为System Internals的公司开发的软件,只有两名员工。后来被微软收购了,两名员工据说也都留在微软工作。他们的网站已经不能访问了,当年这个网站上有不少非常有用的工具和有深度的文章。这些软件和文章现在都归到了Windows Sysinternals中。在Sysinternals Process Utilities这一节中,还可以看到当年的一些工具,Process Explorer, psExec, Handles等等。一 般我们使用ProcessExplorer来查看进程资源使用相关的信息。比如某个进程加载了哪些DLL(特别是当你怀疑加载了版本错误的dll时)。当文件删除不掉时,也会用它 来查看是哪个进程打开了这个文件(类似linux下的lsof)。要知道一个进程是如何使用内存的,你也应该使用这个工具–而不要相信TaskManager–主要是Task Manager中使用的术语从Windows95以来一直在变化,老实说作为一个程序员,我已经很难记清楚某个版本的TaskManager中所称的某个内存值究竟是什么含义。Windows这样做是为了照顾一些非程序员,从而希望在术语的使用上更易懂。但对程序员来 讲,Process Explorer的定义更准确,也没有变更过。最后介绍一个ProcessExplorer的必杀技:帮你分分钟找出CPU Hog的罪魁祸首!原理是这样的,当一个进程陷入CPUHog时,往往是由某个函数调用引起的(或者在这个函数中存在死循环),这个时候你去查看线程栈,很容易看到具体是哪几行代码在执行。就这么简单!当然, 你需要将符号文件配置好,以便使得Process Explorer可以正确地还原调用栈。顺便说一句,这并不是ProcessExplorer的功能,而是Windows自身提供的dbghelp.dll的能力。这个功能应该从windows95起就存在(不过那个时候似乎没有dbghelp.dll,我们要实现类似的功能必须自己想办法),但我开始使用ProcessExplorer来调查CPU Hog应该是从2006年左右起–因为那时候我们才用上了有双核或者超线程的CPU。在此之前,一旦发生CPUHog,我们常常只有绝望地关掉机器,因为此时CPU完全被占满,几乎没有任何可能来运行任何调试工具。我遇到过的CPU Hog的原因:程序中有引擎+脚本结构的。比如杀毒软件,一般会有一个杀毒引擎,病毒码往往都是一小段特殊的脚本。有时候这些脚本在某些情况下导致引擎陷入死循环。正则表达式也是由正则表达式引擎,正则表达式和被匹配的模式构成的,平常测试时无法发现问题,但有时候特殊的模式会触发正则表达式引擎陷入死循环。这似乎是我在查CPU Hog问题时遇到的比较多的一个坑。循环中的上边界是一个变量,但被错误赋值成无限大的一个值;或者循环中出现错误导致循环次数变量的自增被忽略。在多线程程序中,如果对一个List之类的结构进行遍历,但又错误地修改了迭代器指向。本质上还是跟2是一致的。网络攻击迫使CPU要处理大量的事务。这种情况下一般会伴随网络带宽增加–当然你要知道你的正常带宽消耗是多少。还有一次遇到杀毒引擎的错。杀毒引擎查到一个文件染毒时,一般应该将其清除或者隔离。放入隔离区的文件是不能访问、运行的,杀毒引擎也不会再对它进行处理。但有一次遇到杀毒引擎隔离文件失败,对一个文件反复查杀和隔离,从而导致CPU Hog。
猜你喜欢内容
-
简单网:构建全网教育数据枢纽,让知识检索化繁为...
简单网:构建全网教育数据枢纽,让知识检索化繁为“简”回答数有0条优质答案参考
-
去三亚有什么好玩的地方
去三亚有什么好玩的地方回答数有1条优质答案参考
-
石狮一日游必去景点推荐
石狮一日游必去景点推荐回答数有1条优质答案参考
-
电气工程师的证书考取条件是什么
电气工程师的证书考取条件是什么回答数有1条优质答案参考
-
房地产估价师的具体报考条件有啥
房地产估价师的具体报考条件有啥回答数有1条优质答案参考
-
房产经纪人的工作内容具体包含什么
房产经纪人的工作内容具体包含什么回答数有1条优质答案参考
-
学习小提琴都有哪些难点
学习小提琴都有哪些难点回答数有1条优质答案参考
-
企业行政管理证书的含金量怎么样
企业行政管理证书的含金量怎么样回答数有1条优质答案参考
-
初学者要怎么入门小提琴
初学者要怎么入门小提琴回答数有1条优质答案参考
-
报考珠宝鉴定师要啥条件
报考珠宝鉴定师要啥条件回答数有1条优质答案参考
















