python - 如何减少在 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
由于多个用户在代码中使用它,所以我想在我的代码中加载这个文件一次并每次都使用它的返回数据,无论如何都要将此文件映射到磁盘以避免每次加载文件或减少加载时间。
解决方案
文件中存储了哪些类型的数据?如果它只包含数据,我建议寻找替代方案。如果它包含实例或其他数据,请尝试更改 dunder 方法getstate和setstate以避免存储无用数据,如原始数据、临时数据结构等。
推荐阅读
- ajax - 如何在 ajax 中接收多个数组,从 laravel 中的控制器方法作为 JSON 传递?
- mysql - 我想将 AUTO_INCREMENT 更改为 UUID
- mysql - 如何使用 ssis 将数据从 mysql 插入到 ssms
- java - 展平二叉树,将分支作为列表返回
- uml - 有人能告诉我我是否尝试过用例图来解决这种情况吗?
- firefox - WebExtension:fireFox(基本操作系统)中未定义 browser.tabs
- pandas - 如何根据熊猫数据框数据透视表中的条件获取列中的值?
- haskell - 获取列表中的列表元素
- php - 在 Zen Cart 中创建自定义 mysql JOIN 查询
- css - 无法在纯 html 标头中将导航菜单浮动到右侧