相关疑难解决方法(0)

为什么Linux(x86)的页面大小为4 KB,如何计算?

x86架构上的Linux内核的默认内存页面大小是4 KB,我想知道这是如何计算的,为什么?

linux x86 kernel cpu-architecture

31
推荐指数
4
解决办法
3万
查看次数

使用multiprocessing.Manager.list而不是真实列表会使计算花费很长时间

我想multiprocessing从这个例子开始尝试不同的使用方法:

$ cat multi_bad.py 
import multiprocessing as mp
from time import sleep
from random import randint

def f(l, t):
#   sleep(30)
    return sum(x < t for x in l)

if __name__ == '__main__':
    l = [randint(1, 1000) for _ in range(25000)]
    t = [randint(1, 1000) for _ in range(4)]
#   sleep(15)
    pool = mp.Pool(processes=4)
    result = pool.starmap_async(f, [(l, x) for x in t])
    print(result.get())
Run Code Online (Sandbox Code Playgroud)

这里l是一个列表,当生成4个进程时,它会被复制4次.为避免这种情况,文档页面提供了使用队列,共享数组或代理对象multiprocessing.Manager.对于最后一个,我改变了以下定义l:

$ diff multi_bad.py multi_good.py 
10c10,11
<     l …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

cpu-architecture ×1

kernel ×1

linux ×1

multiprocessing ×1

python ×1

x86 ×1