提问人:ArekBulski 提问时间:4/9/2015 最后编辑:bignoseArekBulski 更新时间:9/29/2015 访问量:2107
防止 RAM 分页到交换区域 (mlock)
Prevent RAM from paging to swap area (mlock)
答:
6赞
ShadowRanger
9/29/2015
#1
对于 CPython,没有一个好的答案,不涉及编写 Python C 扩展,因为工作在页面上,而不是对象上。即使您曾经检索过必要的地址并通过调用将它们全部编辑,您也会有一段地狱般的时间来确定何时和何时。您需要知道所有受保护数据类型的内存地址和大小;由于适用于页面,因此您必须仔细跟踪任何给定页面中当前有多少对象(因为如果您只是盲目地,并且页面中有多个内容要锁定,那么第一个内容将解锁所有对象; 是一个布尔标志,它不计算锁定和解锁的数量)。mlock
ctypes
mlock
ctypes
mlock
mlock
munlock
mlock
mlock
munlock
munlock
mlock/munlock
即使你做到了这一点,你仍然会在数据采集和数据之间进行竞争,在此期间数据可以被写入交换。mlock
你可以通过谨慎使用模块和 s 来部分避免这些问题(给你内存页面,引用所述内存而不复制它,所以可以用于页面),但你必须从头开始构建它。mmap
memoryview
mmap
memoryview
ctypes
mlock
简而言之,Python 并不关心以您想要的方式交换或内存保护;它信任交换文件配置为您所需的安全性(例如禁用或加密),既不提供额外的保护,也不提供添加它所需的信息。
评论