Anton
fn get_u16<T: ByteOrder😠&mut self) -> u16 { ... }
Anton
ну теперь другое дело
Anton
Из доков линка на метод https://github.com/carllerche/bytes/blob/master/src/buf/buf.rs#L291
Anton
я и не заметил подвоха
Aleksey
так это похоже актуальная дока мастера https://github.com/carllerche/bytes/commit/025d53342eac05acf784ca008a7c517f0aafadd2
Aleksey
это да, я к тому, что обновлять не надо
պլհկ
ну поэтому смотри доку на docs.rs
պլհկ
я последнее время вообще в crates.io не хожу
պլհկ
объясните в чем прекол bytes, если он паникует на get и put
պլհկ
в байтордере хоть обработать можно
kitsu
Карго можно как-нибудь сказать, чтоб не лез в сеть?
kitsu
ну, при учете, что локально все зависимости есть конечно же
Anton
это да, я к тому, что обновлять не надо
ну да с мастером пример работает
Anton
объясните в чем прекол bytes, если он паникует на get и put
у меня буфер гарантированого размера
պլհկ
везет
Aleksey
Карго можно как-нибудь сказать, чтоб не лез в сеть?
может что-то из того пригодится https://github.com/alexcrichton/cargo-local-registry https://github.com/rust-lang/cargo/pull/2361
Anton
ну, при учете, что локально все зависимости есть конечно же
впроде не как уже такое всплывало - если ты новый крейт создаешь он лезет в сеть, не лезет если только если ты старый комплишь
Anton
Спасибо за помощь чет невнимательный
kitsu
беда
kitsu
мм, а вообще я сейчас проверил, вроде все работает
kitsu
rlib-s + cargo.lock
kitsu
чяднт?
Anton
rlib-s + cargo.lock
строго все версии совпали?
kitsu
йес
Anton
интересно, наверно = "x.y.z", у меня с "x.y" не прокатывало
kitsu
да, с x.y.z
Pavel
http://dmkpress.com/catalog/computer/programming/978-5-97060-236-2/ кто нибудь читал , может дать оценку перевода этой книги ?
Kerrigan
> цветное
Kerrigan
чернобелые игрушки никому не нравятся?
Pavel
чернобелые игрушки никому не нравятся?
я вообщем то не привереда ) есть возможность арендовать цветное издание . Где то читал , что перевод просто жесть . Хочу убедиться так ли это , если нет , то позаимствую
պլհկ
Читай бук, тут даже пдф кидали
ne_on
в чем разница первого издания от второго? Та книга, что продают она вроде как первого издания
Alexander
Кто-то во внутренностях serde копался? Оно при десериализации сжирает 500м на ~130мег файл.
Alexander
Вижу что в deserialize_seq, не пойму почему.
Alexander
Может этот bincode не нужен? А заменить всё на mmap.
Anton
Может этот bincode не нужен? А заменить всё на mmap.
попробуй, но большая вероятность что станет еще больше
պլհկ
как?
Anton
The size of the encoded object will be the same or smaller than the size that the object takes up in memory in a running Rust program.
Alexander
Это про bincode?
Anton
ага
Alexander
Ну итоговый объект думаю с этим сходиться. Другой вопрос что при самой de он отжирает чуть ли не 3-4 размера.
Alexander
http://bbot.online:8080/static/doc/1.txt
Anton
а файл можно читать по кускам?
պլհկ
что сериализуешь-то?
Anton
*исходный
Alexander
Ну всмысле для пробы ? Я как раз хотел попробовать сохранить частями. Но в общем задумка была просто грузить структуру векторов и всё - это работает, но вот пиковое значение напрягает.
Alexander
что сериализуешь-то?
{Vec<String>, vec f32, vec f32, vec f32, и пару vec enum(A|B|Other(String))}
Anton
если файл - это векторы а не какой-нить json - так читай его по кускам и de на по ходу чтения
պլհկ
слайс должен вообще без аллокаций десериализовываться по идее
Alexander
если файл - это векторы а не какой-нить json - так читай его по кускам и de на по ходу чтения
Так все равно очень муторно. То одна операция и всё что надо в памяти, а то руками бегать минимум по структуре.
Anton
слайс должен вообще без аллокаций десериализовываться по идее
так он скорее всего конечный обьект создает, на каждую запись
Alexander
За удобство всегда платят памятью =)
Сорян, но абстрактное утверждение :)
Alexander
Т.е. в идеале я вообще ожидал бы что он просто взял практически как в памяти и положил. Ну вероятно он не совсем так прямо делает, но не объясняет такой жор большой в любом случае.
Anton
на скорее всего у тебя data -> de -> object -> clone -> push
Alexander
Если файл будет гиг - пять гигов отжирает будет? Ну его.
պլհկ
ну он и положил век как слайс
Alexander
на скорее всего у тебя data -> de -> object -> clone -> push
Да вот тоже думаю там где-то клон, пытаюсь глазами найти в serde, но это же как-то печально или я что-то не понимаю.
պլհկ
[len][elements]
Денис
а как память замерял?
Alexander
на скорее всего у тебя data -> de -> object -> clone -> push
Причем там клон не один, а видно несколько даже раз, ну на вид.
Alexander
а как память замерял?
Выше я ссылку из valgrind кинул
Alexander
Врядли клон в serde - там tagged, как я понял ты soa юзаешь? а её не ковырял?
А я не думаю что оно связано. Хотя хм, надо посмотреть. Но по идее я использую просто структуру. Разве что soa что-то хитрое реализует с клонированием что de использует. Но это догадки, зачем оно так вообще может делать - не знаю.
Alexander
По идее serde просто структуру с векторами должен видеть и всё. Так кажется.
Anton
soa размечает raw как стрктуру - верно?
Денис
Anton
соотвествонно она должна хранить индексы и тип элементов - если не в цикле - то хз сколько доп элементов получается
Alexander
soa размечает raw как стрктуру - верно?
По идее нет. Это просто макросы для генерации нужной векторной структуры из невекторной. С памятью оно не работает.
Anton
https://github.com/cgaebel/soa/blob/master/src/lib.rs
Anton
#![feature(alloc)] #![feature(collections)] #![feature(core)] #![feature(unsafe_no_drop_flag)] #![feature(filling_drop)] extern crate alloc; extern crate collections; extern crate core;
Anton
нафига ей alloc тогда?
պլհկ
чем слайс-то не устраивает?
Alexander
чем слайс-то не устраивает?
Не понял вопроса. Почему vec а не слайс?
պլհկ
да, почему не десериализуете в слайс