պլհկ
$ sudo du -sh * 22M git 157M registry 6.0G target
kitsu
$ sudo du -sh * 22M git 157M registry 6.0G target
надо было устанавливать го
պլհկ
you_re_like_a_little_baby_meme.jpg
Sherzod
Loo
$ sudo du -sh * 22M git 157M registry 6.0G target
sudo du -sh * 13G 7.0G 6.2G You re like a little baby meme
Sergey
https://github.com/tensorflow/rust
Sergey
ништяки
Alexander
https://github.com/tensorflow/rust
Вроде этому 100 лет уже. Это биндинги которые только модель проигрывать. А на обучение всё только в питоне. Ну на вид так.
Kerrigan
ура, идея тоже сломалась
Kerrigan
В смысле?
не индексирует и автокомплит с большой задержкой
Kerrigan
так должно быть?
Safort
так должно быть?
Да, это одна из новых фич.
Safort
Loo
так должно быть?
Да, там есть проблемы
Alexander
А есть боги оптимизации в чате?
Денис
только боги войны
Денис
... войны с борроу-чекером
Aleksey
😄
Alexander
Ну ваще , признать что пару месяцев писанины и боров-чекер уже хоть и не друг, но хотя бы ужас перестёт вызывать.
Alexander
По сути просто надо подумать где хочешь убить данные. Иногда, если что-то свяжешь не так - то просто одна структура будет за другую держаться, хотя и не должна - мемори лик по сути :)
Loo
А есть боги оптимизации в чате?
У тебя проблемы с производительностью?
Alexander
Ну типа того.
Alexander
Точнее с производительностью итератора.
vladislav
Точнее с производительностью итератора.
Производительность итератора?
Alexander
https://github.com/inv2004/soa_iter_bench/blob/master/src/main.rs
Alexander
Почему test_old2 медленнее чем test_zip ? Хотя там почти одно и тоже по сути.
vladislav
сложна. Если всё правильно понимаю, то в test_zip у тебя линия, тк один раз итерируешься по коллекции. В test_old2 у тебя лямбда с циклом, по идее должен быть квадрат
vladislav
Но я не знаток раста, так беглый взгляд. Хз как это работает под капотом.
vladislav
а бля
vladislav
проглядел, в первом то же
Денис
test test_old2 ... bench: 1,644,049 ns/iter (+/- 58,290) test test_zip ... bench: 1,584,199 ns/iter (+/- 51,280)
Денис
разницах в пределах погрешности
-__-
У Zip специализация есть https://doc.rust-lang.org/src/core/iter/mod.rs.html#1078
vladislav
Забавно
Alexander
У меня на хостинге на intel atom разница заметна - 12% где-то.
պլհկ
perf record @ perf report
Alexander
Я извиняюсь, что такое специализация у zip ?
vladislav
Так нет, тоже самое на вид. Я по сути код для old2 взял из core::iter::Zip
Я понял, в глаза ебусь просто. Тебе кинули выше линк на сорцы, можешь ещё посмотреть ассемблерный код этого говна.
Alexander
Я там только инлайны заметил, которые не повлияли.
vladislav
Я извиняюсь, что такое специализация у zip ?
специализация это имлементация интерфейса для определённого типа
vladislav
Я извиняюсь, что такое специализация у zip ?
Простыми словами, по всей видимости, zip как-то особо оптимизирован для этого случая
Alexander
Но у меня по сути тип векторов одинаковый вроде.
vladislav
вот даже мержак есть, мб там чего-то наглядишь https://github.com/rust-lang/rust/pull/48635
vladislav
если не ошибаюсь, это то
vladislav
Но у меня по сути тип векторов одинаковый вроде.
тут не про вектора речь, а про итераторы
Alexander
Смотрите. У меня есть test_new, который вообще просто через zip всё делает, но он почему-то самый тормозной. Хотя я думал что разницы вообще не должно быть.
Alexander
Потому что то что есть сейчас вообще дико тормозит, вроде old2 получше, но все равно не так быстро на вид как просто через итератор прогнать, но тогда поля надо указывать - абстракция пропадает, которая как бы zero-cost должна быть.
vladislav
Обычно "всё дико тормозит" из-за кривого алгоритма, а не итерации, я думаю, llvm замечательно справится с оптимизацией здесь
Alexander
Ну пример показывает. Уверен.
vladislav
Ну пример показывает. Уверен.
Мб ты раскроешь нам контекст?
vladislav
Что твоя программа делает и тд
Alexander
Тут в примере почти все полностью есть. И можно заметить как тормозит test_old даже в сравнении с test_old2. Хотя там отличия не особо даже видны.
Alexander
В другом месте кода побольше и там тоже видно х3 задержку в общем времени вычисления на итераторах как в test_old в сравнении с другими.
Alexander
Что твоя программа делает и тд
Тут это раньше я писал. Она обходит структуру в которой вектора или слайсы вызывая функцию .calc из трейта.
Alexander
Но по сути это все не играет роли мне кажется - в коде выше в бенчмарках видно что тормозит , а что нет.
Alexander
По сути я не вижу разницы между test_zip и test_old2 , но по производительности она есть.
Nikita
А есть возможность убирать из исполнения некоторые тесты?
պլհկ
есть
Nikita
А можно узнать - как?
Nikita
А то когда 10+ тестов выполняется уже ничего не понятно
պլհկ
#[ignore]
Nikita
#[ignore]
Пасиб)
Nikita
Вот пожалуй ещё вопрос для того чтобы использовать #!feature(zero_one)] например обязательно ставить nightly версию?
պլհկ
для использованию любых фич обязательно
Nikita
Ну и третий вопрос почему на MacOS может не обновляться гребанный карго и раст? Приходится с каждым релизом его деинсталлировать и снова ставить
պլհկ
https://www.rustup.rs
Nikita
ставь rustup
Так уже... но не работает
Nikita
Чёт
Nikita
И это странно
պլհկ
у меня работает, какая проблема?
Nikita
Хотя я даже с правами суперпользователя пробовал