slobby
驱动牛犊
驱动牛犊
  • 注册日期2003-12-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1792回复:7

95分请教:如何提高程序的响应速度

楼主#
更多 发布于:2004-06-16 18:34
请问如何提高程序的实时响应速度,比如,我正在做一个网络程序,这个程序不定期向网络发送数据包,当程序要发送数据包时,要求它能马上占用cpu,不管当前cpu是否被其它的进程使用,直到数据包被发送出去为止(也就是说我们的程序几乎要达到实时响应的性能),在接收数据的时候也一样。要达到这种效果有可能吗,简单的通过VC的SetPriorityClass将我们的程序提高实时级别能不能实现,还是要通过别的途径??往各位大侠赐教,讨论一下实现的可能性也好。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-06-16 19:04
在驱动中把你的级别设为DPC以上.,防止被切换掉
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-06-16 19:44
在驱动中把你的级别设为DPC以上.,防止被切换掉

不可以,否则你的应用程序出现页面错误的话,那你的系统就等于死了,除非你可以保证你的应用程序全部代码和数据以及分配的内存堆还有调用的DLL模块等等都是永远驻留在物理内存的,不是任何代码都可以提高IRQL的。

我的观点:在Windows上要实现硬实时多任务的话,不是说不可能,但是非常困难,不是一二行代码可以解决问题的,不过如果要做到100微秒(>50微秒)左右的响应性能还是可以想办法做到的,再小的话精度就比较难以保证。
slobby
驱动牛犊
驱动牛犊
  • 注册日期2003-12-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-16 20:00
我的程序的目的是:就算系统处于极度繁忙的情况下,我们都能保证数据包能够尽快的发送出去。整个过程从响应到发送完毕耗时不超过3ms,但我发现如果程序在发送数据的时候,打开一个较大的进程,程序的响应时间就发生了跳变,从<1ms一下子跳到好几十ms,实时性根本不能保证,好郁闷好郁闷!!!
xdjm
驱动中牛
驱动中牛
  • 注册日期2001-04-02
  • 最后登录2024-01-25
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望25点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-06-17 18:51
我认为如果你不借助于其它硬件比如硬件定时器的帮助,仅仅通过应用程序的调度来实现这一点很难,Windows不能保证这一点,这取决于你的系统当前的状态。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2004-06-17 19:41
碰见过好几次这样的了,windows就不是个实时的OS,怎么大家偏偏还要弄实时的活给它尼?设计思路是不是应该改改?
myswin
驱动小牛
驱动小牛
  • 注册日期2003-10-13
  • 最后登录2005-11-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-18 09:27
Windows 可能真不适应这样的工作~~不过向楼主说的
“从<1ms一下子跳到好几十ms”不太可能把,这也太慢了~~
=========== D =========== R =========== I =========== V =========== E ---------抵制日货-------
slobby
驱动牛犊
驱动牛犊
  • 注册日期2003-12-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-22 15:38
散分了,人人有份,永不落空啊,呵呵,虽然问题没有解决,但还是很感谢大家的帮忙,谢谢
游客

返回顶部