将大数据结构写入文件的最有效方法

问题描述

假设您有一个代数数据类型,并且您使用的是庞大的数据结构,那么编写这样的写入函数是否会更有效:

val writer: out_channel -> mygadttype -> unit

递归访问代数数据类型并写入每个节点,或类似:

val print: Format.formatter -> mygadttype -> unit

然后使用 Format.asprintf 写入字符串,然后将该字符串写入文件

我没有估计数据结构有多大,但在性能方面(和内存方面?),哪个更有效?目标是让结果是人类可读的,所以没有编组

解决方法

您可以使用 Format 直接打印到带有 Format.formatter_of_out_channel 的文件。如果没有更多信息或基准测试,Format 的开销是否重要尚不清楚。