性能基准测试结果

所有基准测试均在运行 bleRPC 固件并启用端到端加密(AES-128-GCM)的 nRF54L15 DK peripheral 上进行。MTU 协商为 247 字节。连接间隔因平台而异。

吞吐量对比

Python (macOS)

30.3
KB/s flash read

CI: 15ms

iOS (iPhone 16)

32.1
KB/s flash read

CI: 30ms

Android (Pixel 5)

59.0
KB/s flash read

CI: 30ms

各平台详细结果

Python Central (macOS, bleak)

连接间隔:15ms(macOS 协商)— 测试代码

基准测试结果详细信息
flash_read_throughput30.3 KB/s10 次 8192 字节,264.2 ms/次
flash_read_overhead60.1 ms/次1 字节 x 20 次
echo_roundtrip60.6 ms/次50 次
data_write_throughput3.3 KB/s200 字节 x 20 次,59.9 ms/次
counter_stream (P→C)5.8 ms/条20 条,共 117 ms
counter_upload (C→P)7.4 ms/条20 条,共 147 ms
功能测试结果详细信息
echo_basic通过
echo_empty通过
echo_max_length通过256 字符字符串
flash_read_basic通过16 字节
flash_read_8kb通过8192 字节
data_write_basic通过1024 字节
data_write_8kb通过8192 字节
multi_container_echo通过250 字符字符串
counter_stream通过5 条
counter_stream_large通过20 条
counter_upload通过5 条
counter_upload_large通过20 条

iOS Central (iPhone 16, CoreBluetooth)

连接间隔:30ms(iOS 协商)— 测试代码

基准测试结果详细信息
flash_read_throughput32.1 KB/s10 次 8192 字节,249.0 ms/次
flash_read_overhead62.3 ms/次1 字节 x 20 次
echo_roundtrip60.0 ms/次50 次
data_write_throughput3.3 KB/s200 字节 x 20 次,60.0 ms/次
counter_stream (P→C)6.1 ms/条20 条,共 121 ms
counter_upload (C→P)4.5 ms/条20 条,共 91 ms
功能测试结果详细信息
echo_basic通过
echo_empty通过
flash_read_basic通过64 字节
flash_read_8kb通过8192 字节
data_write通过64 字节
counter_stream通过5 条
counter_upload通过5 条

Android Central (Pixel 5)

连接间隔:30ms(Android 协商)— 测试代码

基准测试结果详细信息
flash_read_throughput59.0 KB/s10 次 8192 字节,135.7 ms/次
flash_read_overhead90.4 ms/次1 字节 x 20 次
echo_roundtrip62.2 ms/次50 次
data_write_throughput3.2 KB/s200 字节 x 20 次,60.3 ms/次
counter_stream (P→C)3.7 ms/条20 条,共 73 ms
counter_upload (C→P)5.1 ms/条20 条,共 101 ms
功能测试结果详细信息
echo_basic通过
echo_empty通过
flash_read_basic通过64 字节
flash_read_8kb通过8192 字节
data_write通过64 字节
counter_stream通过5 条
counter_upload通过5 条

性能说明

连接间隔的影响

连接间隔(CI)是影响往返延迟的主要因素。每次请求–响应循环至少需要 2 个连接事件:

Peripheral 广播的首选 CI 为 15–30ms(PREF_MIN_INT=12, PREF_MAX_INT=24)。实际 CI 由 Central 的操作系统决定。

加密开销

端到端加密每次传输增加 20 字节(4 字节计数器 + 16 字节 AES-GCM 标签)。对于大载荷(8 KB),此开销可以忽略不计(<0.3%)。AES-128-GCM 加密/解密本身在现代移动设备上是硬件加速的,即使对于 8 KB 载荷也只需 <1ms

吞吐量优化