阅读:1352回复:6
WDM中浮点数效率问题,请大家提点指点
大家好,我刚接触驱动,请多指教
我在PCI驱动程序中加入功能代码,并在IOCTRL经过测试后发现从应用层调用驱动层的一次功能需要很长时间,根本达不到系统对时间的要求。 从应用传入到驱动的参数是浮点数,个数在1到5个。在功能代码中也使用了大量的浮点数操作。这对效率有影响吗? 其中调用的延时功能是正确的。 另外,从应用层到驱动层的一次切换大概需要多长时间? IRP打包的时间受什么因素影响? 如果不考虑功能,只让驱动完成一个I/O操作,那么从应用层到驱动层再返回这段时间内花费最多地方应该在哪里? 我现在实在找不出来什么原因,希望大家能给我指点一下。 |
|
沙发#
发布于:2005-03-13 17:54
不建议你在驱动中处理浮点数
发送I/O操作的时间比较短(具体的没有测试过),通常都可以满足要求,如果你要平凡的I/O操作,或许可以通过其他途径来优化 |
|
|
板凳#
发布于:2005-03-14 00:16
不建议你在驱动中处理浮点数 你好,谢谢你的指点。 我曾经也把这些功能代码放在驱动外面,让驱动完成简单I/O操作,但由于每个功能中I/O次数过多,导致时间还是不符合要求。居然在比放在驱动里面速度还是快一些,可见使用浮点数让这个驱动程序的性能下降很多。 由于I/O过于频繁,这些代码势必要放到驱动里面,但我对如何优化实在难以下手,希望能给我一点提示。如何在驱动中使用浮点数操作而不使性能下降,或者把浮点数操作转化成整型来操作是否能使速度上升。 |
|
地板#
发布于:2005-03-14 09:06
建议你使用内存影射IO和共享内存来IO和传送数据....
|
|
|
地下室#
发布于:2005-03-14 12:37
学习......
|
|
|
5楼#
发布于:2005-03-14 13:10
你好,谢谢你的指点。 对于I/O操作可以象wowocock说的那样“共享内存来IO和传送数据” 但由于你的具体细节不清楚,所以不能为你提供更准确的建议了,抱歉 |
|
|
6楼#
发布于:2005-03-15 08:10
谢谢几位,我现在就往这方面下手。
|
|