我正在开发一个将数据存储在文件中的金融应用程序。我注意到文本文件输入/输出非常慢。如果我切换到二进制格式,它会快多少? 2倍? 10倍?我可以编写自己的计时测试,但我希望其他人已经完成了。提前致谢。
瓶颈在于将数据移入/移出磁盘。无论是文本还是二进制都不是真正的问题;您需要做的是尽量减少数据量。
如果您的数据包含大量数值,您可能会看到一些显着的节省。例如,数字 1234567890 是十个字节的文本,但可以放入一个四字节的二进制整数中。但是,请注意值 1 只是文本的一个字节,但在二进制 int 中仍需要四个字节。
您可能还想考虑在文本和二进制文件之间转换所花费的时间。读取和写入“原始”整数和 double 组比转换文本和从文本转换更快,但是您需要担心字节顺序、不同平台/编译器的大小差异、结构填充等。
因此,您需要查看应用程序的数据,以确定它是否会在二进制编码中显着变小,以及在格式之间转换数据时涉及哪些问题。
另一个大问题是随机访问时固定大小与可变大小的记录。如果记录的大小是固定的,那么很容易找到文件中的第 N 条记录。如果它们的大小是可变的,那么在读取记录 N 之前,您可能必须读取和解析记录 1 到 N-1。
我是一名优秀的程序员,十分优秀!