打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【ESP32学习】两种SDIO方式文件读取速度比较
  SDIO支持4线和1线两种方式,两种方式在速度上有多大区别?我们在ESP32_psRAM_Lobo版上进行了测试。

测试程序如下:

1线方式:
  1. import os
  2. import time

  3. os.sdconfig(os.SDMODE_1LINE)
  4. os.mountsd()

  5. def file_read(n):
  6.     total = 0
  7.     with open(filename) as f:
  8.         for i in range(n):
  9.             total += len(f.read(1000))
  10.             f.seek(0, 0)
  11.     return total

  12. def time_it(f, n):
  13.     t0 = time.ticks_us()
  14.     total = f(n)
  15.     t1 = time.ticks_us()
  16.     dt = time.ticks_diff(t1, t0)
  17.     print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
  18.     return total/dt

  19. N = 200
  20. filename = '/sd/1.JPG'
  21. r = 0
  22. for i in range(10):
  23.     r = max(time_it(file_read, N), r)

  24. print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码


4线方式

  1. import os
  2. import time

  3. os.sdconfig(os.SDMODE_4LINE)
  4. os.mountsd()

  5. def file_read(n):
  6.     total = 0
  7.     with open(filename) as f:
  8.         for i in range(n):
  9.             total += len(f.read(1000))
  10.             f.seek(0, 0)
  11.     return total

  12. def time_it(f, n):
  13.     t0 = time.ticks_us()
  14.     total = f(n)
  15.     t1 = time.ticks_us()
  16.     dt = time.ticks_diff(t1, t0)
  17.     print('{:5.3f} sec : {:8.3f} Mbytes/sec'.format(dt * 1e-6, total/dt))
  18.     return total/dt

  19. N = 200
  20. filename = '/sd/1.JPG'
  21. r = 0
  22. for i in range(10):
  23.     r = max(time_it(file_read, N), r)

  24. print('max speed: {:8.3f} Mbytes/sec'.format(r))
复制代码


测试前,先准备好一个TF卡,并预先复制测试文件,可以使用任意文件,这里的测试文件是 1.JPG,是一个图片文件。

测试时,为了保证测试结果不受到其它干扰,先按下RESET键,硬复位系统,然后在分别运行程序进行测试。测试程序会连续测试10次,然后返回速度最大的结果。测试结果如下:

1线方式


  1. 1.790 sec :    0.203 Mbytes/sec
  2. 1.767 sec :    0.206 Mbytes/sec
  3. 1.768 sec :    0.206 Mbytes/sec
  4. 1.770 sec :    0.206 Mbytes/sec
  5. 1.856 sec :    0.196 Mbytes/sec
  6. 1.888 sec :    0.193 Mbytes/sec
  7. 2.402 sec :    0.152 Mbytes/sec
  8. 1.834 sec :    0.199 Mbytes/sec
  9. 1.769 sec :    0.206 Mbytes/sec
  10. 1.771 sec :    0.206 Mbytes/sec
  11. max speed :    0.206 Mbytes/sec
复制代码

4线方式

  1. 1.712 sec :    0.213 Mbytes/sec
  2. 1.689 sec :    0.216 Mbytes/sec
  3. 1.691 sec :    0.215 Mbytes/sec
  4. 1.692 sec :    0.215 Mbytes/sec
  5. 1.779 sec :    0.205 Mbytes/sec
  6. 1.810 sec :    0.201 Mbytes/sec
  7. 2.324 sec :    0.157 Mbytes/sec
  8. 1.757 sec :    0.207 Mbytes/sec
  9. 1.692 sec :    0.215 Mbytes/sec
  10. 1.694 sec :    0.215 Mbytes/sec
  11. max speed :    0.216 Mbytes/sec
复制代码

可以看出,两种方式的速度差别不大,只有5%左右。



此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

来源:EEWorld MicroPython开源版块板块,转载请附上链接
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
RK3568外接AP6275S WIFI模块调试详解
千兆网卡带宽测试
网络性能测试工具iperf详细使用图文教程
使用iperf测试网络性能
linux测试带宽命令,Linux服务器网络带宽测试iperf
Banana Pi BPI-R3 评论:详细信息、定价和功能--第九部分
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服