Nic*_*ani 16 python pickle python-3.x textblob
我正在使用pickle来保存我使用TextBlob库构建的NLP分类器.
经过大量与此问题相关的搜索后,我正在使用泡菜.目前我正在本地工作,我用我的i7和16GB RAM机器加载pickle文件(1.5Gb)没有问题.但我的想法是,我的程序将来必须在我的服务器上运行,该服务器只安装了512Mb RAM.
泡菜可以处理如此大的文件还是会遇到内存问题?
在我的服务器上,我安装了Python 3.5,它是一个Linux服务器(不确定哪个发行版).
我问,因为目前我无法访问我的服务器,所以我不能试着找出会发生什么,但同时我怀疑是否可以保持这种方法或者我必须找到其他解决方案.
不幸的是,如果不在机器上进行测试,很难准确回答.
以下是一些初步想法:
Pickle模块没有固有的大小限制,但是你正在推动其预期用途的界限.它不是为单个大型物体设计的.但是,自从您使用Python 3.5以来,您将能够利用PEP 3154,它可以为大型对象提供更好的支持.您应指定pickle.HIGHEST_PROTOCOL当你倾倒你的数据.
您可能会遇到很大的性能影响,因为您正在尝试处理距离内存大小3倍的对象.您的系统可能会开始交换,甚至可能会发生颠簸.RAM现在如此便宜,将其提升到至少2GB应该会有很大帮助.
要处理交换,请确保您有足够的可用交换空间(如果您使用Linux,则需要一个大的交换分区,或者在Windows上的主分区上有足够的空间用于交换文件).
正如朋友的评论所示,Pickle对于在酸洗过程中的RAM消耗并不是非常友好,所以你可能不得不处理Python试图从操作系统获得比我们对你的对象可能期望的1.5GB更多的内存.
鉴于这些考虑因素,我不认为它能为您带来很好的效果.我强烈建议升级目标计算机上的RAM以使其工作.