gpt4 book ai didi

c - C 中的写/读文件性能问题

转载 作者:行者123 更新时间:2023-11-30 15:53:26 25 4
gpt4 key购买 nike

我在用 C 语言读写文件时遇到性能问题。这是我的问题和解决方案,但速度很慢:

我有一个 ASCII 文件,我认为其中的每一行都是一条记录。我必须根据文件中某个位置存在的特定数字将该文件分成两个。例如,如果位置 10 的数字为 0,则记录将转到 file1,如果位置 10 的数字为 1,则记录将转到 file2。

我所做的是打开输入文件和输出文件的其他两个文件流。我从输入文件中读取一行,进行比较,该行要么转到 file1 要么转到 file2,然后读取下一条记录。它工作正常,但速度很慢。请建议一种更快地完成此操作的方法。

以下是读取文件的方式:

bytes_read = readline(infile, (void*)buffer, line_size+1);

fwrite 用于写入文件。文件大小约为 50 MB。读取整个输入文件后,文件将关闭。

最佳答案

您几乎已经找到了最快的方法!

  • 您有什么类型的 IO?缓冲/无缓冲?
  • 文件有多大?
  • 您是否打开/关闭每行的输出文件,还是保持打开状态?
  • 在输出文件中进行任何查找吗?
  • 哪部分很慢,读过吗?写?两者都?

IO 是程序中速度较慢的部分之一。一些代码可以帮助我们发现任何明显的问题。

关于c - C 中的写/读文件性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654230/

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