Multithreading 线程数量和RAM使用之间的关系通常是什么?
线程数量和RAM使用之间的关系通常是什么 假设可用线程的数量是K,假设K=“由lscpu命令显示的CPU”,我们有一个具有某种并行性的程序。Multithreading 线程数量和RAM使用之间的关系通常是什么?,multithreading,memory,Multithreading,Memory,线程数量和RAM使用之间的关系通常是什么 假设可用线程的数量是K,假设K=“由lscpu命令显示的CPU”,我们有一个具有某种并行性的程序。 随着使用的线程数量的增加(比如使用t个线程),程序内存消耗的一般行为是什么?是O(t)吗?线程会带来一定的开销。您需要内存来处理线程状态、线程本地数据 显然,如果一个线程需要X字节的内存来存储上述信息,那么n个线程将需要n*X字节 所以你需要一个较低的边界。但是:最重要的是,取决于每个线程正在处理的工作负载。一个线程可能只是逐行读取一个文件,处理它,然后一
随着使用的线程数量的增加(比如使用t个线程),程序内存消耗的一般行为是什么?是O(t)吗?线程会带来一定的开销。您需要内存来处理线程状态、线程本地数据 显然,如果一个线程需要X字节的内存来存储上述信息,那么n个线程将需要n*X字节
所以你需要一个较低的边界。但是:最重要的是,取决于每个线程正在处理的工作负载。一个线程可能只是逐行读取一个文件,处理它,然后一次写一行。那么它就不需要太多内存了。但另一个线程可能会将一个大图像读取到内存中,然后对该数据进行各种计算。因此,要求一个一般的上界是毫无意义的。我明白了。当某个程序的内存消耗随着线程数量的增加而不断增加时,这并不奇怪,对吧?通常,线程会做一些工作。您可能期望更多的工作会导致更多的内存消耗。