Loyd
А так бы можно было бы подумать
Vlad
ДС2 у вас
Сосква сосат
Loyd
=)
Αλεχ
вообще я всегда into_iter пишу, зачем 2 метода писать, если есть один, специально для этого случая?
Αλεχ
будь я не в дс и не будь я шарпистом, я б к вам тоже запилился
Αλεχ
собсна я думал
Αλεχ
но у вас везде жабу требовали, даже в тимсити
Vlad
Так у нас котлин))))
Loyd
О том и речь
Αλεχ
Так у нас котлин))))
та же жаба же
(((Sergey(not seresha))
Есть функция, которая принимает итератор, есть ли разница при передачи этих конструкций, если обе принимаются как валидные?
Αλεχ
только поприличнее
Αλεχ
Есть функция, которая принимает итератор, есть ли разница при передачи этих конструкций, если обе принимаются как валидные?
в одном случае будет клонирование каждого элемента, а в другом - нет. Есть ли разница?..
Aleksey
Что можно почитать про rust в плане оптимизации по размеру. Можно ли на rust получить бинарь без оверхеда под линукс к примеру или rust мелочами не занимается, а на больших программах оверхед не заметен? Пока гугл подсказал как хелловорлд с 5 мегабайт ужать до 380 кб.
Alexander
Мне кажется, это вопрос не к Rust'у а к линкеру...
Anton
День сурка =)
Berkus
но как обычно, отрубать жемаллок и все такое - у жапарика по-моему была статья про это
Berkus
если сделал закладку, ща найду
Alex
jemalloc уже не в расте не?
Cat
Ещё в расте
Berkus
jemalloc уже не в расте не?
а куда он вдруг убежал?
Cat
Нужна статья, где чувак hello world на рокет оптимизировал по размеру
Alex
Ещё в расте
в найтли то?
Alex
вроде убрали не?
Berkus
https://stackoverflow.com/questions/29008127/why-are-rust-executables-so-huge статью еще не нашел но вот -C prefer-dynamic если хочется больше боли
Roma
https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html про раст; https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html про elf в целом от ебанутых
պլհկ
https://github.com/rust-lang/rust/issues/36963
Ivan
о, интелли-ж-руст опять обновился...
Aleksey
https://stackoverflow.com/questions/29008127/why-are-rust-executables-so-huge статью еще не нашел но вот -C prefer-dynamic если хочется больше боли
Ооо, даааа, больше боли, в смысле динамической линковки 🙈. Так выходит вместо 380 всего 16... и еще 7000 на либу 😼. Но в принципе норм. Вот только как в эмбедедде быть? Надеяться, что 380 не оверхед?
Ivan
а какой именно эмбеддед?
Ivan
если современный линуксовый, то ИМХО там уже и бинарники в писят мегабайт - не проблема совершенно
Ivan
А с lto игрался?
+ выкинуть нахер jemelloc
Stanislav
а какой именно эмбеддед?
в котором у тебя 96 КБ ОЗУ, и 512 КБ флеш
Stanislav
например
Ivan
сразу и бинарник меньше, и динамический расход памяти меньше
Ivan
в котором у тебя 96 КБ ОЗУ, и 512 КБ флеш
дак там no-std, bare metal и вот это всё, по идее (я сам не пробовал), там не должно быть проблем с размером бинарников
Ivan
если код правильно писать
Aleksey
Я конечно понимаю, что есть малинка или там платы от nxp, они тоже ембеддед, но там динамически слинковать не проблема. А вот какойнить stm32 это совершенно иной расклад. И размер еще не самая большая проблема. LTO пробую, но пока особых успехов нет.
Aleksey
в эмбеддеде делают [no_std] и там таких проблем нет
Это я тупанул, был в шоке когда размер хелловорлда собранного простым rustc helloworld.rs
Ivan
там же ещё дебагинфо скорее всего внутри
Ivan
так то если хелловорлд на "идиоматических плюсах" собрать статически с libstdc++, без оптимизаций и с дебажной инфой, то примерно так же выйдет ИМХО
Aleksey
там же ещё дебагинфо скорее всего внутри
Не, передаешь ключ линкеру и он ее режет. Просто всеравно много статически линкует. Хотя смотря как посмотреть 😸
Ivan
ну прямо резать её смысла нет
Ivan
труЪ способ - убрать в отдельный файл
Ivan
ибо может пригодиться
Nikita
дебажные символы можно класть в отдельный файл
Nikita
просто обычно этим с gcc не занимаются, но тем не менее можно
Ignat
хз насчёт не занимаются, в дебьянах это дефолтный подход для получения дебажных символов
Ivan
и в rhel/centos/fedora/etc.
Ivan
процедура извлечения debuginfo в оттдельные файлы (и отдельные пакеты соответственно) уже автоматизирована как часть процесса сборки пакетов
Loo
https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html
Loo
https://m.habr.com/post/305246/
kitsu
https://m.habr.com/post/305246/
еее, мама я в телевизоре
Vlad
В IntelliJ-Rust перфоманс завезли, срочно обновляйтесь https://intellij-rust.github.io/2018/07/11/changelog-78.html
Kerrigan
сегодня попробую
Антон
А, это тут не работает
Nikita
тут вам не здесь
Aleksey
А ты Гуглил вообще? Там уже выходили статьи на эту тему и на русском и на английском
Гуглил. Просто видимо дело в разных версиях компайлера. В статьях исходно размер озвучивался такой, какой мне получилось после оптимизации запилить. Ну если не применять динамическую линковку
Nikita
stdlib меняется
Nikita
чем дальше, тем жырнее
Ignat
Щас бы не применять динамическую линковку
Ignat
Я думал, это у го-даунов только популярно
Nikita
реально - около 500 кил вроде на hello world сейчас без сжатия
Nikita
Я думал, это у го-даунов только популярно
растоёбы тоже динамически линковаться не хотят
Ignat
Мда.