2 核系统中从 HDD 读取和加密文件的最佳线程数是多少?
Which is the optimum number of threads in a 2 core system to read and encrypt a file from HDD?
2 核系统中的最佳线程数是多少,假设它必须:
1)从硬盘读取文件
2)通过使用密钥对文件的字节进行异或来加密文件
3) 在网络上传输加密文件
我认为 2) 可以并行完成,3) 可以并行完成但据我了解 1) 不能并行完成,因此系统只能使用 1 个核心将文件读入 RAM ,然后 2) 和 3) 可以使用 2 个内核完成。我说得对吗?
看到文件读取不是 CPU 绑定进程它的 IO 绑定进程。所以它只由 DMA 控制器直接处理。无论如何,所有这些文件操作都应该只在单线程中处理。
您可以在通过单独的线程从文件中读取内容后并行化异或操作。即使您可以将文件垃圾放在一个队列中,多线程异或线程将从队列中读取内容并执行其操作并将结果发送回网络。如果您使用的是异步套接字通道,那么它不会阻止您,因此每个 x-oring 线程都可以将其内容放入该通道。
就是这样。
2 核系统中的最佳线程数是多少,假设它必须: 1)从硬盘读取文件 2)通过使用密钥对文件的字节进行异或来加密文件 3) 在网络上传输加密文件
我认为 2) 可以并行完成,3) 可以并行完成但据我了解 1) 不能并行完成,因此系统只能使用 1 个核心将文件读入 RAM ,然后 2) 和 3) 可以使用 2 个内核完成。我说得对吗?
看到文件读取不是 CPU 绑定进程它的 IO 绑定进程。所以它只由 DMA 控制器直接处理。无论如何,所有这些文件操作都应该只在单线程中处理。
您可以在通过单独的线程从文件中读取内容后并行化异或操作。即使您可以将文件垃圾放在一个队列中,多线程异或线程将从队列中读取内容并执行其操作并将结果发送回网络。如果您使用的是异步套接字通道,那么它不会阻止您,因此每个 x-oring 线程都可以将其内容放入该通道。
就是这样。