gpt4 book ai didi

c++ - stdlib fopen 中的缓存如何工作?

转载 作者:行者123 更新时间:2023-11-28 04:47:27 34 4
gpt4 key购买 nike

我有一个使用标准库 fopen/fclose 函数实现的文件 IO 接口(interface),它运行良好,直到我们不得不将其更改为同步实现以防止数据丢失(一种情况)。所以我用系统调用(open()/close() 等)替换了所有 stdlib 文件 IO 调用。通过这些更改,我开始看到性能问题。我知道性能会有所下降,但我不知道我应该期望并乐于接受多大的影响。

据我了解,这种性能下降主要是由于 stdlib 文件 IO 接口(interface)在我们的进程空间中提供缓存以实现快速读写;但是,我仍然不确定stdlib 文件 io 接口(interface)如何提供缓存

一旦我清楚了这一点,我想我就能理解性能下降,从而理解它的量级。

最佳答案

我猜性能下降的主要原因是系统调用次数的增加。

我建议探索经典的“K&R 编写的 C 编程语言书籍”。您需要找到有关 UNIX I/O 的章节(可能是第 7 章)。有实现的例子:“fopen”、“fread”等

之后我建议探索 glibc implementation .

关于c++ - stdlib fopen 中的缓存如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48982205/

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