cPickle或pickle是否将整个结构加载到内存中?

3

我有一个程序需要从命令行中多次调用,但涉及读取一个大的pickle文件,因此每次调用都可能非常耗费时间。是否有办法让cPickle只是将文件映射到内存中而不是完全读取它?

1个回答

6

你可能不需要明确地这样做,因为你的操作系统磁盘缓存可能已经做得很好了。

任何性能差的问题实际上可能与反序列化的成本有关,而不是从磁盘读取的成本。您可以通过创建一个临时RAM磁盘并将文件放在那里来测试这一点。

消除反序列化成本的方法是将文件加载移动到单独的Python进程中,并像服务一样调用它。在这些情况下,在Python中构建一个快速且简单的REST服务非常容易且非常有用。

查看套接字文档以了解如何使用原始套接字进行此操作。回显服务器是一个很好的起点示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接