我有一个应用程序,它需要非常快地从COM端口读取数据。数据以10 The (1.25MBaud)以8字节包的形式到达。因此,数据捕获(从COM-Port缓冲区获取数据)和处理必须尽可能快。我认为我的代码是非常优化的,但我仍然有时会因为串行缓冲区溢出而丢失一些数据包。正因为如此,我考虑将pyserial包(或者至少是我使用的部分)移植到Cython。
可以将pyserial包移植到Cython上吗?更重要的是:如果代码是用Cython编写的,速度会有所提高吗?是否有其他可能更简单的方法来提高性能?
发布于 2015-10-10 10:31:02
令人怀疑的移植能否解决您遇到的问题。使用UART的问题是操作系统为传入数据提供的缓冲区相对较小。
作为替代方案,您可以尝试其中一个以太网/串行转换器,以允许串行I/O通过以太网端口。这种方法的优点是使用网络驱动程序的大得多的缓冲区。
如果您的应用程序不能很容易地以数据到达的速度摄取数据,那么任何数量的缓冲区都无济于事。在这种情况下,如果您不能接受某些数据包丢失,则应尝试降低数据速率。
https://stackoverflow.com/questions/33049137
复制相似问题