首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中,是否可以用一个进程将一个大型对象加载到内存中,并在单独的独立进程中访问它?

在Python中,是否可以用一个进程将一个大型对象加载到内存中,并在单独的独立进程中访问它?
EN

Stack Overflow用户
提问于 2022-04-16 17:02:10
回答 1查看 120关注 0票数 1

我正在编写一个程序,它需要在一个非常大的(~6GB) csv文件上运行算法,这个文件使用read_csv()装载熊猫。我现在的问题是,每当我调整我的算法,需要重新模拟(这是非常经常的),我需要等待30岁左右的数据集加载到内存,然后另一个30来加载相同的数据集到一个图形模块,这样我就可以直观地看到发生了什么。但是,一旦加载了它,操作就会很快完成。

到目前为止,我已经尝试使用mmap,并将数据集加载到RAM磁盘中进行访问,但没有任何改进。

我希望找到一种方法,用一个进程将数据集加载到内存中,然后使用算法处理进程访问内存中的数据集,每次更改时都会重新运行。

This thread似乎与我所需要的东西很接近,但它使用的是多重处理,它需要在相同的上下文中运行所有的东西。

我不是计算机工程师(我是电气工程师),所以我不确定我想要什么甚至是可能的。不过,如有任何帮助,我们将不胜感激。

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 02:17:59

找到了一个有效的解决方案,尽管它与我最初的要求没有直接关系。

与其将一个大文件加载到内存中并在独立进程之间共享,我发现瓶颈实际上是熊猫库中的解析功能。特别是CSV解析,因为CSV在数据存储方面效率低下。

我开始用python-本机泡菜格式存储我的文件,熊猫通过to_pickle()和read_pickle()函数支持这种格式。这大大减少了我的负载时间从~30到~2s。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71895854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档