Size: a a a

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

2020 November 16

В

Виталий in Rust — русскоговорящее сообществo
Спасибо всем, в принципе понял куда теперь копать)
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
У нас правда речь шла о сотнях и тысячах мегабайт утечки за несколько минут под нагрузкой, но это ведь было на питоне. 6 мб за ночь мы бы даже не заметили 😊
источник

В

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

AD

Andrew Demonov in Rust — русскоговорящее сообществo
Виталий
Через диспетчер задач: потребление памяти за ночь с 3мб выросло до 6мб
К 2036 году займёт 16гб такими темпами. Если сервак не перезапускать конечно
источник

В

Виталий in Rust — русскоговорящее сообществo
Andrew Demonov
К 2036 году займёт 16гб такими темпами. Если сервак не перезапускать конечно
Вот именно нельзя😁 либо раз в год в определённые дни🤔
источник

r

red75prime in Rust — русскоговорящее сообществo
Виталий
Вот именно нельзя😁 либо раз в год в определённые дни🤔
А. тогда mainframe с хотсвопом всех модулей не понадобится.
источник

И

Игорь in Rust — русскоговорящее сообществo
Можно попробовать для теста ограничить число циклов и запустить valgrind, на выходе он скажет утекло или нет
источник

IK

Ivan Kalinin in Rust — русскоговорящее сообществo
Ivan Kalinin
Всем привет. Какого рода магия нужна чтобы статически линкануть библиотеку на плюсах к расту?

- Все нужнык зависимости - добавил (через ar и libtool)
- В build.rs нужные флаги - есть
    let dst = Config::new("./")
       ...
       .build();

   println!("cargo:rustc-link-lib=dylib=stdc++");
   println!("cargo:rustc-link-search=native={}", dst.display());
   println!("cargo:rustc-link-lib=static=tonlib-sys-cpp-bundled");

...
- Ошибки - есть(
Почему-то при линковке всё равно ругается на undefined reference стандартных методов

Что могло быть пропущено?
Касаемо вчерашней проблемы с линковкой stdc++. Оказывается есть разница между

println!("cargo:rustc-link-lib=mylib");
println!("cargo:rustc-link-lib=dylib=stdc++");

и

println!("cargo:rustc-link-lib=dylib=stdc++");
println!("cargo:rustc-link-lib=mylib");

Если вдруг кому интересно, можете попробовать скомпилить mre https://github.com/Rexagon/stdcpp-linkage-mre а потом поменять в build.rs место флага.
Хотя мб это и что-то очевидное, но в растбуке вроде не было ничего про такое(
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Порядок аргументов для линкера важен да
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Но в растбуке такого и не напишут
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Он на ознакомление рассчитан
источник

IK

Ivan Kalinin in Rust — русскоговорящее сообществo
Просто везде в примерах крейта cmake стд линковался до либы
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Это называется symbol interposition
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Если так на будущее
источник

IK

Ivan Kalinin in Rust — русскоговорящее сообществo
Спасибо
источник

В

Виталий in Rust — русскоговорящее сообществo
Игорь
Можно попробовать для теста ограничить число циклов и запустить valgrind, на выходе он скажет утекло или нет
Воу спасибо) совсем не знал об этом инструменте🤝
источник

L

Lain-dono in Rust — русскоговорящее сообществo
Есть ли что-то готовое на тему дружбы HashMap<TypeId, Box<dyn Any + ...> и serde.rs?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Мб erased-serde поможет
источник

L

Lain-dono in Rust — русскоговорящее сообществo
Mikail Bagishov
Мб erased-serde поможет
Т.е. самому писать? Ну ладно
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Готовых библиотек лично я не видел
источник