Уведомления

Группа в Telegram: @pythonsu

#1 Июль 23, 2021 12:18:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как раскрыть потенциал современных NVMe SSD при сохранении/загрузке коллекций обьектов?

NVMeMaster
Нужно читать с диска blob в том же самом формате в каком он находится в оперативной памяти в Rust
Это как вообще возможно? Вот допустим, у меня есть массив указателей на какие-то объекты. Как вы предлагаете его в том же самом виде сохранять на диск? Пусть это даже будет deepcopy, то есть вместе с самим массивом сохраняем дереференсы всех указателей. Но массив, это один черт массив адресов, и когда я его восстановлю с диска в другом процессе, указатели будут указывать на что попало.

В данный момент оно реализовано на простом pickle
То есть, вы думаете, что результат дампа pickle-ом это “blob в том же самом формате в каком он находится в оперативной памяти python”. Правильно?



Офлайн

#2 Июль 26, 2021 17:31:50

NVMeMaster
Зарегистрирован: 2021-07-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как раскрыть потенциал современных NVMe SSD при сохранении/загрузке коллекций обьектов?

FishHook
То есть, вы думаете, что результат дампа pickle-ом это “blob в том же самом формате в каком он находится в оперативной памяти python”. Правильно?
Нет
Я понимаю как работает pickle и хотел бы спуститься на более низкий уровень.

FishHook
Это как вообще возможно? Вот допустим, у меня есть массив указателей на какие-то объекты. Как вы предлагаете его в том же самом виде сохранять на диск?
В моем случае есть только массив примитивов типа int32. В Rust они хранятся без промежуточных указателей. От строк и объектов я уже избавился


Офлайн

#3 Авг. 6, 2021 13:34:14

NVMeMaster
Зарегистрирован: 2021-07-20
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Как раскрыть потенциал современных NVMe SSD при сохранении/загрузке коллекций обьектов?

У меня получилось решить проблемму с помощью готовых библиотек для раста вроде https://docs.rs/bincode/1.3.3/bincode/
Но чуть меньшую скорость и наибольшую совместимость py+rust дает numpy.array. Подробнее описано тут библиотека для чтения NumPy's *.npy binary format для Rust

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version