【发布时间】:2019-05-30 18:23:43
【问题描述】:
我有一个加载文件和处理数据的应用程序。假设我有 10...20 个文件要处理。
一些要求,让问题更清楚:
- 文件很小,最大可能只有几 MB
- 可能有十几个文件,也可能有一百个
- 一个示例可能是解析 CSV 数据或 JSON,加载游戏 3d 模型
一个想法是使用一些线程池和并行处理文件。这有效率吗?我的操作系统可以处理来自多个线程的文件访问吗?
我发现了这个问题: Accessing a single file with multiple threads
但在我的应用程序中,一个线程将访问其“自己的”文件,因此不会发生任何冲突。
在我的应用程序中,我使用的是 C++/STL,但我想了解有关 Linux 和 Windows 上文件系统的一般意见。
【问题讨论】:
-
您确定在您的特定情况下,加载需要很长时间吗?我猜它是如此之快,以至于您的普通用户甚至都没有注意到它。
-
我在这里问了一个一般性的问题,所以在我的简单应用程序中,文件访问速度很快(特别是如果文件在系统缓存中)。但我正在考虑这里的一般机制。
标签: c++ io operating-system filesystems