哪种方式更快地访问文件?

5

朋友们

我很好奇哪种方法更快。

  • 如果我从项目的Assets文件夹中访问/读取文件?!!

还是

  • 如果我从SD卡中访问/读取文件??!!!

基于应用程序的性能,哪种方法更好?

请有人能解释一下原因吗?

任何帮助都将不胜感激。

谢谢。


3
访问Assets文件夹会更快,因为该数据可在RAM中获取,而RAM的访问时间比闪存驱动器快。 - tipycalFlow
2个回答

2

基于应用程序的性能,哪种方式是最好的?

当您将文件添加到资源文件夹时,整个应用程序的大小会增加,因此运行应用程序需要更多的设备内存。虽然应用程序反应更快,但也需要更多的内存来运行。

但是,当您将文件存储在SD卡上时,加载应用程序所需的RAM更少。从SD卡获取文件比第一种选项会降低性能,但差距很小。


但是由于assets文件夹是只读的。所以如果我想在运行时修改一些文件,那么我必须将该文件复制到SD卡上,然后才能进行修改。在这种情况下,这肯定会影响性能,对吧?你对这种情况有什么看法? - GrIsHu
还有一件事,如果您将超过1MB的文件放置在资产中,则不会允许。在这种情况下,您必须将其存储到sdcard中,然后需要访问它。因此,如果文件大小接近1MB,它将导致您的应用程序加载到内存中稍微慢一些,并且也会减慢您的应用程序。 - GrIsHu

2

我想在此补充一些内容,你需要考虑的是文件大小对于访问性能的影响。从这里可以看到,放在Assets文件夹中的1Mb以上的文件无法从应用程序中读取,将会抛出异常。这是因为在构建过程中,文件被压缩,当它们在手机上时需要资源来解压缩。
通常情况下,当文件很小的时候,从asset文件夹中读取肯定比从SD卡中读取更快。但是,在我的观点中,如果你考虑到文件大小和异常安全性,那么从SD卡中读取它更加安全。这可以提高整个系统的性能,而一些微小的时间差异并不会显著地影响用户体验。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接