目录
问题描述:
这两天遇到的棘手的问题就是这个,终于在今天找到了答案~~~~~~~
有人说关系到虚拟内存设置,有人说关系到代码中的num_workers = n 中n的取值,那么下面通过这几天的实验我来说一下我的看法
一、虚拟内存设置:
鼠标右键此电脑==>属性==>高级系统设置==>高级==>点击性能项的"设置"==>高级==>点击虚拟内存项中的"更改",如下图所示
二、修改代码中num_workers = n 的n值
2.1num_workers = 0 是完全可以的(具体在 三 中说明)
修改步骤如下:
在pycharm中按 ctrl + N开启查找模式,点击All查找(因为默认为classes,但num_workers=0这只是一行代码),不然查不到。(其他软件也有相应的查找方式,可以自己了解一下)
三、两种相关联-结合解决
因为我发现当我把虚拟内存调到足够大时,我把n改为4,即num_workers = 4,程序也是可以运行的,而且运行时间减少了。但当虚拟内存很小时,只有num_workers=0可以正常运行。
我猜想这行代码大概率是并行执行程序,n即为分配的进程数量,但要给多出来的进程分配虚拟空间来进行,每一个进程要分配一定空间,所以进程越多需要的虚拟空间就越多,所以可以根据虚拟空间来确定n值,当然也可以根据n值来分配虚拟内存,但具体对应情况我没有详细去了解,只是做了一个简单的猜想。
所以num_workers=0 即不需要额外的内存空间,相当于串行运行程序,所以不需要或者需要少量的虚拟内存(因为本身系统在C盘是自己分配有虚拟内存的,而且默认勾选了图1 中的6选项,系统是指定分配的,即谁需要就分配给谁)
当然只是我的猜想,希望有哪位大佬来说明一下这个猜想是否属实,还望指正!