colinares
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1352回复:6

WDM中浮点数效率问题,请大家提点指点

楼主#
更多 发布于:2005-03-13 08:44
大家好,我刚接触驱动,请多指教

我在PCI驱动程序中加入功能代码,并在IOCTRL经过测试后发现从应用层调用驱动层的一次功能需要很长时间,根本达不到系统对时间的要求。
从应用传入到驱动的参数是浮点数,个数在1到5个。在功能代码中也使用了大量的浮点数操作。这对效率有影响吗?
其中调用的延时功能是正确的。

另外,从应用层到驱动层的一次切换大概需要多长时间?
IRP打包的时间受什么因素影响?

如果不考虑功能,只让驱动完成一个I/O操作,那么从应用层到驱动层再返回这段时间内花费最多地方应该在哪里?

我现在实在找不出来什么原因,希望大家能给我指点一下。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-13 17:54
不建议你在驱动中处理浮点数
发送I/O操作的时间比较短(具体的没有测试过),通常都可以满足要求,如果你要平凡的I/O操作,或许可以通过其他途径来优化
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
colinares
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-14 00:16
不建议你在驱动中处理浮点数
发送I/O操作的时间比较短(具体的没有测试过),通常都可以满足要求,如果你要平凡的I/O操作,或许可以通过其他途径来优化


  你好,谢谢你的指点。
  我曾经也把这些功能代码放在驱动外面,让驱动完成简单I/O操作,但由于每个功能中I/O次数过多,导致时间还是不符合要求。居然在比放在驱动里面速度还是快一些,可见使用浮点数让这个驱动程序的性能下降很多。
   由于I/O过于频繁,这些代码势必要放到驱动里面,但我对如何优化实在难以下手,希望能给我一点提示。如何在驱动中使用浮点数操作而不使性能下降,或者把浮点数操作转化成整型来操作是否能使速度上升。
  
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2005-03-14 09:06
建议你使用内存影射IO和共享内存来IO和传送数据....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-14 12:37
学习......
[b]万水千山总是情,回个帖子行不行?[/b]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-14 13:10
 你好,谢谢你的指点。
  我曾经也把这些功能代码放在驱动外面,让驱动完成简单I/O操作,但由于每个功能中I/O次数过多,导致时间还是不符合要求。居然在比放在驱动里面速度还是快一些,可见使用浮点数让这个驱动程序的性能下降很多。
   由于I/O过于频繁,这些代码势必要放到驱动里面,但我对如何优化实在难以下手,希望能给我一点提示。如何在驱动中使用浮点数操作而不使性能下降,或者把浮点数操作转化成整型来操作是否能使速度上升。
  
 

对于I/O操作可以象wowocock说的那样“共享内存来IO和传送数据”
但由于你的具体细节不清楚,所以不能为你提供更准确的建议了,抱歉
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
colinares
驱动牛犊
驱动牛犊
  • 注册日期2005-02-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-15 08:10
谢谢几位,我现在就往这方面下手。
游客

返回顶部