更新(29 / 05 / 2024): 我们所有产品都有大量库存,也可以在    立即购买

测量 SBC 应用程序性能

单板机性能

在应用程序设计期间,您需要了解 SBC 在计算速度方面的期望,以设计一个可以处理所有传入数据的应用程序。

在本教程中,我们介绍了一种测量不同任务中 SBC 性能的方法,以及如何推断它以调整应用程序的大小。

测量代码

为了测量代码,我们使用简单的函数来计算发送或接收一堆字节所需的时间。 有了这些信息,我们就有足够的能力来计算 CPU 使用率和应用程序的大小。

下面我们举一个例子来对 GPS 写操作进行基准测试。 它只是将虚拟数据发送到 GPS 并测量其时间。 返回值的单位为 [字节/秒]

def benchmark_gps_write( chunk=64, N=128, baudrate=921600 ):
    gps = sbc.Gps( 1, baudrate )
    buf = bytearray( chunk )

    t0 = time.ticks_us()
    for i in range( N ): # send len(buf) bytes N times
        gps.write( buf )
    t1 = time.ticks_us()
    
    dt_s = time.ticks_diff( t1, t0 )*1e-6 # Compute time
    size_bytes = chunk*N
    
    return size_bytes/dt_s

成果

TaskResultUnits
ubx_parser3.25e+04[B/s]
ubx_builder1.09e+05[B/s]
nmea_parser1.47e+04[B/s]
flash_write1.82e+04[B/s]
flash_read4.93e+05[B/s]
sd_write4.46e+04[B/s]
sd_read4.26e+05[B/s]
gps_write8.85e+04[B/s]
imu_read4.68e+02[Samples/s]
ahrs_update1.01e+05[Calls/s]
gc_collect4.89e+02[Calls/s]
printf7.67e+05[B/s]

CPU使用率计算

如表所示,SBC 可以使用 88% 的 CPU 向 GPS 发送 100[KB/s]。 这也意味着如果您的应用程序向 GPS 发送 8.8[KB/s] 的速度,它会使用 10% 的 CPU。

相同的想法可以应用于任何应用程序,以获取 CPU 使用率的近似值并正确调整应用程序的大小。

如果你喜欢这个内容,你可以关注我们 Twitter, YouTube, Facebook or LinkedIn 保持更新这样的内容。

有任何问题或要求吗?
联系我们!我们将在 24 小时内回复!

图标
联系我们 ArduSimple
关闭

想了解更多关于 GPS/RTK 的信息吗?

1. 我们的工程团队会联系您解决任何问题
2.我们会及时通知您促销和新产品发布
3.只有当我们有重要新闻时您才会收到我们的消息,我们不会向您发送垃圾邮件