| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1628 人关注过本帖
标题:请问,在程序中挂多少钩子会明显影响系统性能?谢谢!
只看楼主 加入收藏
mansohu
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2013-3-20
结帖率:20.69%
收藏
 问题点数:0 回复次数:2 
请问,在程序中挂多少钩子会明显影响系统性能?谢谢!
请问,在程序中挂多少钩子会明显影响系统性能?谢谢!
搜索更多相关主题的帖子: 影响 
2015-12-20 23:10
mansohu
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2013-3-20
收藏
得分:0 
请问,Windows 中的鼠标键盘操作是否都是钩子?只不过是做在系统里了?谢谢!
2015-12-30 11:25
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
你先了解中断,消息,
再去了解钩子。

中断:CPU执行时,单核CPU同时只能执行一条流水线。现在多核,是有几核就能同时执行几条流水线。流水线是顺序执行,现在有乱序执行机制,但实质也是也顺序执行。
乱序执行,同时在不同位置取二条指令,填充流水线执行序列,并且记录后面指令的位置。当流水线执行到这个位置时,就直接取结果,如果流水线执行时发现不是这个位置,而是另一条分支时,就需要冲洗流水线,把流水线上选择错误的指令序列清洗掉和还原结果。这个是分支预测,这个功能,好像INTER比AMD稍强一点,是现代高速CPU的基础之一。
CPU响应外设的事件,使用的就是中断。

多进程、多线程:由操作系统进行调度,分配一条流水线上的执行时间,达到单位时间内同时执行多个进程,多个线程的目的。
如,1秒钟的流水线时间,被分配给了50个线程,每个线程执行了20毫秒,我们看来,系统同时在运行50个线程,实际上只使用了一条流水线。
进程由线程组成,每个进程最少有一条线程,线程是操作系统进行调度进行的基本对象。

键盘,鼠标:属于外设,当它运作时,会发中断给操作系统。

中断调度。当CPU收到一个中断后,就会中断当前流水线的运作,转为执行中断的内容,中断内容结束后,就继续恢复流水线。

WINDOWS消息。系统分配了线程用来处理消息缓冲,当该线程执行时,检查消息缓冲中,是否有消息,有消息,根据消息的级别:如全局、局部等不同,把消息复制给对应的线程的消息缓冲。钩子,就是在这个消息处理中,注册一个信息,告诉 这个线程,某个类型的消息要复制给我。钩子也分为几类,一类是接收就行,一类是要处理完成后消息才能继续向后传递。网卡抓包类软件就是使用第一类钩子,所以它没办法修改封包,只能抓取封包。

应用程序主线程:负责读取自己的消息缓冲,然后根据消息进行处理。
如果应用程序在几个时间段中,都未能处理完,导致没时间去读取消息缓冲,WINDOWS就报该程序未响应。

你自己分析一下,钩子多到什么程度,才会影响系统性能?

授人于鱼,不如授人于渔
早已停用QQ了
2015-12-30 12:01
快速回复:请问,在程序中挂多少钩子会明显影响系统性能?谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020665 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved