我打算制作一个类似下面的程序结构
PS1是一个持久运行的python程序。 PC1,PC2,PC3是客户端python程序。 PS1有一个变量哈希表,每当PC1,PC2 ......请求哈希表时,PS1会将它传递给它们。
目的是将表保存在内存中,因为它是一个巨大的变量(占用10G内存),每次计算它都很昂贵。将它存储在硬盘(使用pickle或json)并在每次需要时读取它是不可行的。阅读时间太长了。
所以我想知道是否有办法 在内存中持久保存python变量 ,因此无论何时需要它都可以非常快速地使用它。
答案 0 :(得分:1)
当你已经存在漂亮的圆形轮时,你正试图重新发明方形轮!
让我们按照你描述自己需求的方式提升一级:
答案 1 :(得分:0)
简而言之,要完成您所要求的内容,您需要从multiprocessing.sharedctypes模块创建一个字节数组作为RawArray,该模块对于PS1服务器中的整个哈希表足够大,然后将哈希表存储在RawArray。 PS1需要是启动PC1,PC2等的进程,然后可以继承对RawArray的访问权限。您可以创建自己的对象类,该对象提供哈希表接口,通过该接口可以访问表中的各个变量,这些变量可以单独传递给从共享RawArray读取的每个PC#进程。