gpt4 book ai didi

c - 需要一种快速的方法将大块数据写入 C 文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:26 25 4
gpt4 key购买 nike

我不太擅长将大块数据写入文件。我有一个模拟,它有这样的结构

typedef struct
{
int age;
float height;
float weight;
int friends [ 250000 ];
} Person;

我可以有多达 250,000 个人,每个人有 250,000 个 friend (一个小集团)。显然,这是一个很大的数据。如果我想保存每个结构以便稍后加载它们,C 中最有效的方法是什么?这是我到目前为止考虑的内容

  1. 我不想创建一个包含 250,000 组数据的巨大字符串,然后执行单个 write,因为这会占用大量内存
  2. 我也不想创建 250,000 个不同的文件,因为这样做可能会很慢。
  3. 根据索引附加文件(即第 1 个人,然后第 2 个人...),但这也可能很慢。
  4. 将数据保存为二进制(这样效率更高吗?)

EDIT 我正在寻找使用 fwrite () 的有效方法,即收集所有数据并写入单个文件是否更快,或者是否创建多个文件,避免事先收集所有数据的开销。

最佳答案

您可以遍历这些人并只存储年龄、高度和体重成员(3 个 fwrites),然后是 friend_count,然后遍历 friend 并将他们一一写入。所有这一切都与 fwrite。您无需关心优化 I/O,因为 C 库会为您缓冲并在需要时进行大量“写入”。

关于c - 需要一种快速的方法将大块数据写入 C 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com