c++ - 将大型 python 对象存储在 RAM 中供以后使用

标签 c++ python memory ram

是否可以将 python(或 C++)数据存储在 RAM 中供以后使用,如何实现?

背景: 我编写了一个程序来查找输入表中的哪些行与给定的正则表达式匹配。我可以在大约一秒或更短的时间内找到所有线条。然而,问题是每次启动这个程序时,我都会将输入表处理成一个 python 对象。此过程大约需要 30 分钟。

该程序最终将在内存超过 128GB 的​​机器上运行。 python 对象占用大约 2GB 的 RAM。输入表很少更改,因此 python 对象(我目前每次都在重新计算)实际上很少更改。有没有一种方法可以让我一次创建这个 python 对象,将它存储在 RAM 24/7 中(如果输入表更改或服务器重新启动则重新创建)然后每次需要时都使用它?

注意:python 对象在创建后不会被修改。但是,如果需要,我需要能够重新创建此对象。

编辑:我唯一能想到的解决方案就是让程序保持 24/7 运行(作为守护进程??),然后根据需要向它发出命令。

最佳答案

要在 RAM 中存储任何内容,您需要一个正在运行的进程。因此,最简单的解决方案是实现您在编辑中编写的内容。您还可以创建一个始终运行的新进程,让旧进程连接到新进程以获取数据。您如何连接取决于您。您可以使用共享内存或 TCP/IP 套接字。 TCP/IP 的优点是可以通过网络访问数据,但请确保数据安全。

--编辑--

大多数操作系统还允许您安装一 block RAM 作为驱动器。 RAM drive .您可以将对象写入(如 Neil 建议的那样)。

关于c++ - 将大型 python 对象存储在 RAM 中供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13906679/

相关文章:

C++ 将当前日期和时间与当前日期和设置时间进行比较

c++ - 指针和将 char 数组转换为 int

python - "TypeError: argument 1 must be pygame.Surface, not method"Python 错误

python - 基于python3中的另一个值从字典列表中提取值

计算 .txt 文件中重复单词的 C++ 程序

C++ Arabica (over Xerces-c) getNodeValue() 方法不返回实际值

python - 如何在最新的 OS X 上安装多个版本的 Python 并并行使用它们?

编码 getline() 实现 - Valgrind 错误

c++ - C++ 中用于国际象棋移动生成的动态存储

android - 删除 OLDEST 提交的返回堆栈 fragment