python– 将变量存储为单个位

python– 将变量存储为单个位,第1张

概述在过去的几周里,我一直致力于制定一个能够使主要螺旋尽可能高效的程序.我研究了多线程以提高程序的速度,现在我遇到了一个新问题.我的素数列表的长度为6400万和零,这个列表占用240MB的内存.因为我使用多处理(总共5个进程),我的脚本最多使用总共1.1GB的ram,如果达到这一点,则返回内存错误.关于我如何存储素数的一些背景信息:质数存储在列表中,每次我找到素

在过去的几周里,我一直致力于制定一个能够使主要螺旋尽可能高效的程序.我研究了多线程以提高程序的速度,现在我遇到了一个新问题.我的素数列表的长度为6400万和零,这个列表占用240MB的内存.因为我使用多处理(总共5个进程),我的脚本最多使用总共1.1GB的ram,如果达到这一点,则返回内存错误.

关于我如何存储素数的一些背景信息:质数存储在列表中,每次我找到素数时,我将值设置为1(例如:Primes [13] = 1(因为它是素数)和Primes [14] = 0).对我来说这似乎是最好的解决方案,因为列表不会占用大量内存

经过一些基本的数学计算后,我得出结论,我的素数列表中的每个零或一个占用4个字节(32位)的信息.这似乎是合乎逻辑的,但我想知道是否有办法将零和1存储为单个位,因此它不会占用太多内存.

提前感谢您的任何答案,
问候,伤害最佳答案如果每0或1取32位,则表示它的字符(可能是整数?)数组.您应该使用布尔类型(bool).最简单的方法是使用bitarray.其中一个实现:

https://pypi.python.org/pypi/bitarray/0.8.1 总结

以上是内存溢出为你收集整理的python – 将变量存储为单个位全部内容,希望文章能够帮你解决python – 将变量存储为单个位所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存