juventus
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1262回复:4

使用缓冲和直接IO对传输速度的影响有多大

楼主#
更多 发布于:2003-07-25 17:09
当对端口进行传输数据时,比如对并口传输500M的数据
同步接收,使用缓冲好呢?还是直接IO好?(指对速度的影响)

谢谢! ;)
lstart
驱动牛犊
驱动牛犊
  • 注册日期2001-08-14
  • 最后登录2004-01-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-26 02:43
当对端口进行传输数据时,比如对并口传输500M的数据
同步接收,使用缓冲好呢?还是直接IO好?(指对速度的影响)

谢谢! ;)


应用程序运行空间与操作系统的空间不在同一空间中,,,,
对于直接IO,,,是操作系统对应用程序向
驱动所传递的参数进行一次拷贝,,,,,
而对于缓冲则是系统将所要传递的参数锁到物理内存中,,,,
然后映射到系统空间中,,,,再进行操作,,,,,,
所以用哪种方式关键在于一次性传递多少数据,,,,
对于少量数据直接拷贝就可以了,,,,
因为将数据锁到物理内存中并向操作系统映射这个过程
需要一定的CPU时间,,,,,
对于你说的情况,,,关键就是这500M要怎么传,,,,
是分成250块每次传2M,还是25K块每次传20字节,,,,
ppl
ppl
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2006-05-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-26 12:20
用缓冲吧。
并口的速度比较慢。

AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-26 17:16
应用程序和驱动之间应该用缓冲好些,否则效率将会很低,如果并口模式支持DMA,那最好用上DMA,因为你传输的是500M啊........
AthlonxpX86(桃源村)
juventus
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-28 09:09
谢谢各位的发言
我那就试试缓冲了
游客

返回顶部