Size: a a a

Rust — русскоговорящее сообществo

2020 November 16

DO

Do c Tor O r` Ry in Rust — русскоговорящее сообществo
Виталий
Через диспетчер задач: потребление памяти за ночь с 3мб выросло до 6мб
но это не значит, есть есть утечки...
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Виталий
Через диспетчер задач: потребление памяти за ночь с 3мб выросло до 6мб
А за неделю?
источник

DD

Daniil Davydov in Rust — русскоговорящее сообществo
простите)
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Daniil Davydov
ржу в голос
Да не всенормально
источник

В

Виталий in Rust — русскоговорящее сообществo
Alex Ilizarov
А за неделю?
Только вчера запустил
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Виталий
Только вчера запустил
Я бы сказал что программы в штатном режиме могут вполне себе так набирать памяти. Смотри дальше будут ли проблемы
источник

AZ

Alexander Zaitsev in Rust — русскоговорящее сообществo
Виталий
Только вчера запустил
tl;dr - узбагойся, утечки у тебя скорее всего нет
источник

В

Виталий in Rust — русскоговорящее сообществo
Do c Tor O r` Ry
но это не значит, есть есть утечки...
То есть эти цифры можно игнорировать???
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Alexander Zaitsev
tl;dr - узбагойся, утечки у тебя скорее всего нет
+++
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Виталий
То есть эти цифры можно игнорировать???
Оставь прогу работать неделю
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
И посмотри будет ли там 100 мб
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
Виталий
Хм, с этим можно как-то бороться?
Выделять память кусками одинакового размера. Выделить нужную память всю сразу целиком, а не постепенно кусками разного размера и т.д.
Например у меня, при создании zip-файла, очень сильно фрагментировало память хранение структуры директорий zip-файла в виде списка (дело было в питоне) мелких структур разного размера, по одной на файл. Я переделал это всё на один бинарный буфер (аля Vec<u8>), который требовал гораздо меньше аллокаций. Мне это помогло (мне фактически не нужна была структура директорий, а только байтики из которых она состоит, что бы записать в конец zip-файла)
источник

В

Виталий in Rust — русскоговорящее сообществo
Alex Ilizarov
Я бы сказал что программы в штатном режиме могут вполне себе так набирать памяти. Смотри дальше будут ли проблемы
Жду. Испытания не меньше месяца должно пройти. Подумал если на старте такое, может сразу можно это пресечь если это реальная проблема)
источник

DD

Daniil Davydov in Rust — русскоговорящее сообществo
можно посмотреть код используемой асинк библиотеки, там должны быть какие-то нагрузочные тесты которые можно под себя подпилить + профайлер
источник

В

Виталий in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Выделять память кусками одинакового размера. Выделить нужную память всю сразу целиком, а не постепенно кусками разного размера и т.д.
Например у меня, при создании zip-файла, очень сильно фрагментировало память хранение структуры директорий zip-файла в виде списка (дело было в питоне) мелких структур разного размера, по одной на файл. Я переделал это всё на один бинарный буфер (аля Vec<u8>), который требовал гораздо меньше аллокаций. Мне это помогло (мне фактически не нужна была структура директорий, а только байтики из которых она состоит, что бы записать в конец zip-файла)
Спасибо. Будем посмотреть
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
Виталий
Хм, с этим можно как-то бороться?
Ещё можно попробовать заюзать другой аллокатор. Например jemalloc. Мы его тоже для питона заюзали, т.к. он якобы немного лучше справляется с фрагментацией.
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
Но лучше бы убедиться что это именно фрагментация. В питоне это было просто - собрать в разное время статистику по числу объектов и их размеру. У нас она менялась очень мало, и была сильно ниже чем реальное потребление памяти. Так и догадались, что дело во фрагментации.
источник

DO

Do c Tor O r` Ry in Rust — русскоговорящее сообществo
Виталий
То есть эти цифры можно игнорировать???
сделайте нагрузочное тестирование. в какой-то момент рост памяти должен ограничинится постоянной нагрузокй и перестать расти
источник

В

Виталий in Rust — русскоговорящее сообществo
Do c Tor O r` Ry
сделайте нагрузочное тестирование. в какой-то момент рост памяти должен ограничинится постоянной нагрузокй и перестать расти
Надеюсь на подобный исход)
источник

В

Виталий in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Но лучше бы убедиться что это именно фрагментация. В питоне это было просто - собрать в разное время статистику по числу объектов и их размеру. У нас она менялась очень мало, и была сильно ниже чем реальное потребление памяти. Так и догадались, что дело во фрагментации.
Ок
источник