我有一个用Python编写的三元搜索树,里面装有大约200K有效的英文单词。我正在使用它进行字典查找,因为我正在编写类似Boggle的应用程序,它经常访问树以判断字母序列是否是有效字。
现在我的应用程序只是一个从CLI调用的脚本。但是,我将我的应用程序设计为客户端 - 服务器模型。由于将所有单词加载到树中需要相当长的时间,因此我不想为每次向服务器发出的请求执行此操作。理想情况下,树应该作为服务器中的内存中对象持久存储,接收请求并发送响应。
我尝试过Pyro4但随着访问频率的增加,网络I / O的开销也越来越大。因此,它不是一个可行的选择,收益率会降低。我希望实现一个具有较少I / O开销的低级解决方案。我已经了解了共享内存和服务器进程(https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes),但我不确定如何使它们适应非原始Python对象,例如我的三元搜索树。这是我第一次做这类事情,所以如果你们能提供一些指导,我会很感激。