6625|2

1万

帖子

25

TA的资源

版主

楼主
 

【ESP32学习】SD卡速度比较测试2 [复制链接]

 
前一段时间我们进行了两种SDIO方式文件读取速度比较,站长就这个问题询问了ESP32_Lobo版的作者Boris,他回答说是对于小文件两种方式区别不大。

为此,我们继续进行了大文件的读写测试。通过读取3个不同大小的文件,来判断读取速度。先将3个文件复制到SD卡,并改名为1、2、3,文件大小分别是:60708、639659、5235712。测试程序如下:

SD 1Line mode(4 Line mode程序类似,就不贴出了)
  1. import os
  2. import time

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

  5. def filesize(fn):
  6.     try:
  7.         i = os.stat(fn)
  8.         return i[6]
  9.     except:
  10.         return 0

  11. def loadf(p):
  12.     total = 0
  13.     print('============================================')
  14.     print('file name:', p[0])
  15.     print('file size:', filesize(p[0]))
  16.     for i in range(p[1]):
  17.         with open(p[0]) as f:
  18.             while True:
  19.                 x = len(f.read(1024))
  20.                 total += x
  21.                 if x<1024:
  22.                     break
  23.     return total

  24. def time_it(f, n):
  25.     t0 = time.ticks_us()
  26.     total = f(n)
  27.     t1 = time.ticks_us()
  28.     dt = time.ticks_diff(t1, t0)
  29.     print('{} bytes {:5.3f} sec : {:8.3f} Mbytes/sec'.format(total, dt * 1e-6, total/dt))
  30.     return total/dt

  31. print('============================================')
  32. print('       ESP32 SD 1Line mode speed test:')

  33. r0 = time_it(loadf, ('/sd/0', 10))
  34. r1 = time_it(loadf, ('/sd/1', 1))
  35. r2 = time_it(loadf, ('/sd/2', 1))
复制代码


测试结果

SD 1Line mode
  1. ============================================
  2.        ESP32 SD 1Line mode speed test:
  3. ============================================
  4. file name: /sd/0
  5. file size: 60708
  6. 459910 bytes 2.111 sec :    0.218 Mbytes/sec
  7. ============================================
  8. file name: /sd/1
  9. file size: 639659
  10. 639659 bytes 4.029 sec :    0.159 Mbytes/sec
  11. ============================================
  12. file name: /sd/2
  13. file size: 5235712
  14. 5167548 bytes 29.547 sec :    0.175 Mbytes/sec
  15. >>>
复制代码

SD 4Line mode
  1. ============================================
  2.        ESP32 SD 4Line mode speed test:
  3. ============================================
  4. file name: /sd/0
  5. file size: 60708
  6. 459910 bytes 2.027 sec :    0.227 Mbytes/sec
  7. ============================================
  8. file name: /sd/1
  9. file size: 639659
  10. 639659 bytes 3.967 sec :    0.161 Mbytes/sec
  11. ============================================
  12. file name: /sd/2
  13. file size: 5235712
  14. 5167548 bytes 28.836 sec :    0.179 Mbytes/sec
  15. >>>
复制代码

可以看到,1Line和4Line模式的结果仍然差别非常小。





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

最新回复

速度差异不大可能是因为,读取写入时间的大头在flash操作,不在传输,导致传输速度差异对整体读写速度的影响较小  详情 回复 发表于 2018-9-17 08:41
点赞 关注(1)
 
 

回复
举报

6423

帖子

16

TA的资源

版主

沙发
 
速度差异不大可能是因为,读取写入时间的大头在flash操作,不在传输,导致传输速度差异对整体读写速度的影响较小

点评

是有可能的,也与ESP32目前优化的不够有关。  详情 回复 发表于 2018-9-17 09:10
个人签名training
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
白丁 发表于 2018-9-17 08:41
速度差异不大可能是因为,读取写入时间的大头在flash操作,不在传输,导致传输速度差异对整体读写速度的影 ...

是有可能的,也与ESP32目前优化的不够有关。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表