OSError: [WinError 1455] 页面文件太小,无法完成操作

目录

问题描述:

一、虚拟内存设置:

二、修改代码中num_workers = n 的n值

三、两种相关联-结合解决


问题描述:

这两天遇到的棘手的问题就是这个,终于在今天找到了答案~~~~~~~

有人说关系到虚拟内存设置,有人说关系到代码中的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选项,系统是指定分配的,即谁需要就分配给谁)
当然只是我的猜想,希望有哪位大佬来说明一下这个猜想是否属实,还望指正!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值