要处理很大的内容,比如视频裸流之类的东西,如果全放到内存里内存会撑爆。目前对储存和读取都有疑问,python 的 pickle 模块能简单的解决这个问题吗?就是随便 pickle.dump 一下,比如 dump 了 100G ,然后 load 的时候它会自动分段读吗?还是一次性把 100G 都读进内存之后才能解码?
1
ila 2021-12-09 07:27:14 +08:00 via Android
视频流本地存储后应该没有超过 2g 的
|
3
secsilm 2021-12-09 08:07:38 +08:00 via Android
没记错的话,pickle 是都读进内存的。
|
4
skinny 2021-12-09 08:45:30 +08:00
不要用 Python 存一大坨数据,会炸!
|
5
ysc3839 2021-12-09 09:12:32 +08:00 via Android
翻了下代码,load()是流式处理的,loads()是创建个 BytesIO 再 load()。不过看上去是纯 Python 实现的,性能大概不咋样。
|
6
paopjian 2021-12-09 09:56:10 +08:00
这操作有点骚啊,不怕死机数据全丢吗
|
7
ruanimal 2021-12-09 10:24:18 +08:00
视频流需要用 pickle ,直接二进制文件不行吗? pickle 应该需求完整文件才能加载对象吧,读文件倒是流式读的。
|
8
moomtong 2021-12-09 10:40:04 +08:00
Memory Map?不确定视频文件行不行
|
9
Volekingsg 2021-12-09 11:12:10 +08:00
apache arrow ?
|
10
lizytalk 2021-12-09 13:29:38 +08:00 via iPhone
mmap
|
11
LeeReamond OP @ruanimal 主要是大文件自己切割不太方便,裸流的话,比如 10bit 视频,1080P60FPS ,一分钟二十多 G 出去了,自己要搞储存和读取,还要切割开始和结束的位置,还有可能出错还要纠错,感觉太难搞。。
|