- 通常,在大型numpy数组上,joblib明显要快得多, 因为它对numpy数据结构的数组缓冲区具有特殊的处理方式。要查找实现细节,您可以查看源代码。它还可以在使用zlib或lz4进行酸洗时动态压缩这些数据。
- joblib还可以 在加载时对未压缩的Joblib腌制numpy数组的数据缓冲区 进行内存映射 ,从而可以在进程之间共享内存。
- 如果您不腌制较大的numpy数组,则常规的腌制可能会显着加快,尤其是在大型python小对象集合 (例如,较大的str对象)上,因为标准库的pickle模块是在C中实现的,而joblib是纯python。
- 由于PEP 574(Pickle协议5)已在Python 3.8中合并,因此使用标准库腌制较大的numpy数组现在效率更高(在内存方面和cpu方面)。在这种情况下,大型阵列意味着4GB或更多。
- 但是 joblib在Python 3.8中仍然有用,可以 在内存映射模式下使用 加载具有嵌套numpy数组的对象
mmap_mode="r"
。



