我目前正在编写一个时间敏感的应用程序,这让我思考:与从句柄读取/写入相比,打开/关闭句柄(在我的例子中是 COM 端口)的成本有多高?
我知道其他操作的相对成本(例如动态分配与堆栈分配),但我在旅途中没有发现任何与此相关的信息。
最佳答案
没有唯一的答案,特别是在设备方面。一般来说,“打开”操作(CreateFile)涉及设备驱动程序的更多工作。设备驱动程序倾向于在初始化/打开时完成其可以完成的大部分工作,以优化后续的读/写操作。此外,许多设备可能需要很长时间的设置。例如。 “经典”串行驱动程序需要很多时间来初始化波特率预分频器和握手信号。相反,当设备打开并准备就绪时,读写操作通常非常快。但这只是一个提示,这取决于您使用的特定驱动程序(传统 COM?USB 转换器?驱动程序非常不同)。我建议您由分析器进行调查。
关于c - 开一个HANDLE有多贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074543/