Android 二进制文件与文本文件i/o的速度差是多少?

Android 二进制文件与文本文件i/o的速度差是多少?,android,Android,我正在开发一个将数据存储在文件中的金融应用程序。我注意到文本文件I/o非常慢。如果我换成二进制格式,速度会快多少?2倍?10倍?我可以自己写计时测试,但我希望其他人已经做了。提前感谢。文件I/O总是比在RAM中执行操作慢得多。因此,除非二进制文件的大小小于存储相同数据的文本文件,否则使用二进制文件格式不会有帮助。实际的加速将取决于自定义二进制格式的大小。瓶颈是将数据移动到磁盘或从磁盘移动数据。不管它是文本还是二进制,都不是真正的问题;您需要做的是尽量减少数据量 如果您的数据由许多数值组成,您可能

我正在开发一个将数据存储在文件中的金融应用程序。我注意到文本文件I/o非常慢。如果我换成二进制格式,速度会快多少?2倍?10倍?我可以自己写计时测试,但我希望其他人已经做了。提前感谢。

文件I/O总是比在RAM中执行操作慢得多。因此,除非二进制文件的大小小于存储相同数据的文本文件,否则使用二进制文件格式不会有帮助。实际的加速将取决于自定义二进制格式的大小。

瓶颈是将数据移动到磁盘或从磁盘移动数据。不管它是文本还是二进制,都不是真正的问题;您需要做的是尽量减少数据量

如果您的数据由许多数值组成,您可能会看到一些显著的节省。例如,数字1234567890是十个字节的文本,但可以放入一个四字节的二进制整数中。但是,请注意,值1只是文本的一个字节,但在二进制int中仍然需要四个字节

您可能还需要考虑在文本和二进制之间转换的时间。读取和写入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。数字和字符串。