c - 开一个HANDLE有多贵?

标签 c handle

我目前正在编写一个时间敏感的应用程序,这让我思考:与从句柄读取/写入相比,打开/关闭句柄(在我的例子中是 COM 端口)的成本有多高?

我知道其他操作的相对成本(例如动态分配与堆栈分配),但我在旅途中没有发现任何与此相关的信息。

最佳答案

没有唯一的答案,特别是在设备方面。一般来说,“打开”操作(CreateFile)涉及设备驱动程序的更多工作。设备驱动程序倾向于在初始化/打开时完成其可以完成的大部分工作,以优化后续的读/写操作。此外,许多设备可能需要很长时间的设置。例如。 “经典”串行驱动程序需要很多时间来初始化波特率预分频器和握手信号。相反,当设备打开并准备就绪时,读写操作通常非常快。但这只是一个提示,这取决于您使用的特定驱动程序(传统 COM?USB 转换器?驱动程序非常不同)。我建议您由分析器进行调查。

关于c - 开一个HANDLE有多贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074543/

相关文章:

c++ - 比较 float 变量

java - 应用程序关闭后广播接收器仍在运行 - Android

java - "no more handles"的原因

将整数数组复制到另一个整数数组

iphone - Malloc 到 CGPoint 指针在访问时抛出 EXC_BAD_ACCESS

c - 按位运算期间检测到堆栈粉碎

c - 当我使用共享内存编译 C 代码时,为什么会出现错误 "undefined reference to ' sem_init' "

matlab - 为什么 ishandle 对于双输入返回 1?

Matlab - "seal"一个图形,这样绘图就不会覆盖它,但会自动创建一个新图形

.net - DotNET 应用程序中的 GDI 句柄