Android 二进制文件与文本文件i/o的速度差是多少?
我正在开发一个将数据存储在文件中的金融应用程序。我注意到文本文件I/o非常慢。如果我换成二进制格式,速度会快多少?2倍?10倍?我可以自己写计时测试,但我希望其他人已经做了。提前感谢。文件I/O总是比在RAM中执行操作慢得多。因此,除非二进制文件的大小小于存储相同数据的文本文件,否则使用二进制文件格式不会有帮助。实际的加速将取决于自定义二进制格式的大小。瓶颈是将数据移动到磁盘或从磁盘移动数据。不管它是文本还是二进制,都不是真正的问题;您需要做的是尽量减少数据量 如果您的数据由许多数值组成,您可能会看到一些显著的节省。例如,数字1234567890是十个字节的文本,但可以放入一个四字节的二进制整数中。但是,请注意,值1只是文本的一个字节,但在二进制int中仍然需要四个字节Android 二进制文件与文本文件i/o的速度差是多少?,android,Android,我正在开发一个将数据存储在文件中的金融应用程序。我注意到文本文件I/o非常慢。如果我换成二进制格式,速度会快多少?2倍?10倍?我可以自己写计时测试,但我希望其他人已经做了。提前感谢。文件I/O总是比在RAM中执行操作慢得多。因此,除非二进制文件的大小小于存储相同数据的文本文件,否则使用二进制文件格式不会有帮助。实际的加速将取决于自定义二进制格式的大小。瓶颈是将数据移动到磁盘或从磁盘移动数据。不管它是文本还是二进制,都不是真正的问题;您需要做的是尽量减少数据量 如果您的数据由许多数值组成,您可能
您可能还需要考虑在文本和二进制之间转换的时间。读取和写入int和double的“原始”数组要比从文本到文本的转换快,但是您需要担心字节顺序、不同平台/编译器的大小差异、结构填充等
因此,您需要查看应用程序的数据,以确定二进制编码中的数据是否会明显更小,以及在格式之间转换数据时会涉及哪些问题另一个大问题是在进行随机访问时固定大小与可变大小的记录。如果记录的大小是固定的,那么很容易找到文件中的第n条记录。如果它们的大小是可变的,那么在读取记录N之前,您可能必须先读取并解析记录1到N-1。谢谢您的想法,但由于我正在寻找数字,我决定运行自己的测试 以下是我的结果:
emulator droid
integer text 5.478 0.028
integer binary 0.112 0.002
double text 6.546 0.187
double binary 0.117 0.003
integer text/bin 49 14
double text/bin 56 62
前四行是以秒为单位写入100个数字的时间。比率在最后两行。所以答案是,写二进制文件比写文本快14到62倍。我没有测试阅读性能
对我来说,这是好消息,也是坏消息。好是因为我可以大大加快I/o速度,坏是因为处理二进制文件很痛苦。您要处理的文件大小是什么?通常小于1MB。数字和字符串。