c++ - 使用 SSD 时,使用一个线程写入 20 个不同的文件比使用 20 个线程更好吗?

标签 c++ multithreading solid-state-drive

我在 Linux 上有一个 C++ 应用程序,它将一些数据写入 SSD。 应用程序以每秒约 100 兆字节的速度写入。

应用程序每秒向磁盘写入 20 个新文件。除了这 20 个线程之外,应用程序的其他线程执行其他逻辑和维护。

目前,我的应用程序使用多个线程同时写入多个文件,每个线程写入一个文件。

最好更改代码设计,让一个线程每秒写入所有 20 个新文件?

最佳答案

这取决于你的操作系统

但宁愿建议使用最多 4 -8 个线程,因为如果并行执行的线程太多,操作系统的线程管理大部分时间都会减慢程序

尝试使用更少的线程来为每个线程完成更多任务;)

你能做的最好的事情仍然是测量程序的整体执行时间

关于c++ - 使用 SSD 时,使用一个线程写入 20 个不同的文件比使用 20 个线程更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37415352/

相关文章:

c++ - OPenMP 循环增量

c# - 删除对对象的引用时结束线程

java - JVM如何保证只有一个线程可以获取对象的锁?

tfs - Microsoft Team Foundation Server (SqlExpress) -- 如何确保数据保存在我的标准 HDD 而不是我的 SSD 上?

python - 从一组电阻值中找出最小电阻数的算法。 (C++ 或 Python)

c++ - 你如何调用一个返回引用或抛出异常的函数而无需体操?

c++ - 重载运算符<<用于嵌套类模板

java - 同时向一个 URL 发送多个 POST 请求

Cassandra - HDD 与 SSD 的使用对吞吐量没有影响

oracle - 使用闪存盘存储还需要担心行碎片吗?