首页 > 解决方案 > 如何减少在 python 中加载泡菜文件或将泡菜文件映射到磁盘的时间

问题描述

我想加载大小为 4.23GB 的泡菜文件。我使用下面的代码来加载数据:

import _pickle as cPickle
def read_pickle(file):
    try:
        with open(file, "rb") as input_file:
            data = cPickle.load(input_file)
            return data
    except Exception as e:
        print("Error in reading data from pickle file",e)

系统配置:16核32GB RAM

输出:

%time data=read_pickle(file)

CPU times: user 5.79 s, sys: 1.21 s, total: 7 s
Wall time: 7 s

由于多个用户在代码中使用它,所以我想在我的代码中加载这个文件一次并每次都使用它的返回数据,无论如何都要将此文件映射到磁盘以避免每次加载文件或减少加载时间。

标签: pythonjsonpython-3.xperformancepickle

解决方案


文件中存储了哪些类型的数据?如果它只包含数据,我建议寻找替代方案。如果它包含实例或其他数据,请尝试更改 dunder 方法getstatesetstate以避免存储无用数据,如原始数据、临时数据结构等。


推荐阅读