android - 二进制与文本文件 I/O 的速度差异是多少?

标签 android

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

最佳答案

瓶颈在于将数据移入/移出磁盘。无论是文本还是二进制都不是真正的问题;您需要做的是尽量减少数据量。

如果您的数据包含大量数值,您可能会看到一些显着的节省。例如,数字 1234567890 是十个字节的文本,但可以放入一个四字节的二进制整数中。但是,请注意值 1 只是文本的一个字节,但在二进制 int 中仍需要四个字节。

您可能还想考虑在文本和二进制文件之间转换所花费的时间。读取和写入“原始”整数和 double 组比转换文本和从文本转换更快,但是您需要担心字节顺序、不同平台/编译器的大小差异、结构填充等。

因此,您需要查看应用程序的数据,以确定它是否会在二进制编码中显着变小,以及在格式之间转换数据时涉及哪些问题。

另一个大问题是随机访问时固定大小与可变大小的记录。如果记录的大小是固定的,那么很容易找到文件中的第 N 条记录。如果它们的大小是可变的,那么在读取记录 N 之前,您可能必须读取和解析记录 1 到 N-1。

关于android - 二进制与文本文件 I/O 的速度差异是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476855/

相关文章:

android - 使用 MediaPlayer 类播放音频(仅第一次播放轨道)

单击特定应用程序图标时 Android 启动应用程序

Android Firebase 通知 (FCM)

android - AppEngine 上的 Google 语音/语音识别 API?

android - Android StackView 是什么样子的?

android - 在 Google Glass 上分享 Immersion 的内容?

android - android 设置填充百分比

android - 从另一个类调用对话框

android - 从 ReceiverRestrictedContext 获取应用程序,就好像使用了 getApplication(不是 getApplicationContext)

android - 无法在 kotlin 中解析 JSONObject