Size: a a a

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

2020 September 06

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Более того ,если у тебя например 8 воркеров с таким длинным стеком делают одну и ту же задачу то 8 раз отмапить большой стек будет менее накладно чем 8 раз дёрнуть аллокатор с фри
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Dollar Føølish
Более того ,если у тебя например 8 воркеров с таким длинным стеком делают одну и ту же задачу то 8 раз отмапить большой стек будет менее накладно чем 8 раз дёрнуть аллокатор с фри
ты забываешь что у них стеки независимые
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Да 8 разных vm_area
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Я вроде про это и говорю
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
и это будет слегка накладно
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
но это опять вне раста обсуждение
источник

DF

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

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Изначально меня покоробило просто выражение типа вон из профессии от Жуковского. Нам тут филиал хабра не нужен же
источник

B

Bogdan in Rust — русскоговорящее сообществo
Pavel
Пытаюсь при помощи structopt  сделать параметр, который принимает значения из enum, но компилятор ругается, что для энама не определён FromStr, может ли structopt генерировать их сам?

Рылся в здоровенной доке https://docs.rs/structopt/0.3.17/structopt/ нашёл, что автоматическая конверсия работает для subcommand, но у меня уже есть такая для другой цели, а несколько одновременно использовать нельзя.
У тебя энам простой, без доп значений внутри вариантов?
источник

P

Pavel in Rust — русскоговорящее сообществo
Bogdan
У тебя энам простой, без доп значений внутри вариантов?
да
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Dollar Føølish
Изначально меня покоробило просто выражение типа вон из профессии от Жуковского. Нам тут филиал хабра не нужен же
перечитал его выражение - он полностью прав, нефиг так делать
источник

P

Pavel in Rust — русскоговорящее сообществo
уже нашёл, что можно через strum генерить, но не вижу смысла для одного энама подключать, и хотелось бы тот же функционал в самом stuctopt, только консистентный
источник

B

Bogdan in Rust — русскоговорящее сообществo
Pavel
да
https://github.com/Peternator7/strum мб?

Или руками написать ф-ю с матчем внутри и скормить ее в страктопт
источник

P

Pavel in Rust — русскоговорящее сообществo
Bogdan
https://github.com/Peternator7/strum мб?

Или руками написать ф-ю с матчем внутри и скормить ее в страктопт
ну, если руками писать, то можно сразу и FromStr сделать, как я и поступил
источник

B

Bogdan in Rust — русскоговорящее сообществo
Pavel
уже нашёл, что можно через strum генерить, но не вижу смысла для одного энама подключать, и хотелось бы тот же функционал в самом stuctopt, только консистентный
У меня были проблемы с парсингом к-ва байтов, в итоге функцию написал
источник

B

Bogdan in Rust — русскоговорящее сообществo
Pavel
ну, если руками писать, то можно сразу и FromStr сделать, как я и поступил
structopt не любит дефолтную реализацию FromStr в которой Err= Option<(usize,char)>


По тому что для Option<(usize,char)> не реализован типаж Error, а многие реализации этот тип ошибки не меняют(
источник

B

Bogdan in Rust — русскоговорящее сообществo
ой, я наврал, это не в стд реалзации, это либка ubyte корявая 😒
источник

Д

Дима in Rust — русскоговорящее сообществo
Ребят, я наркоман?

Код в бенчмарке, я прямо ctrl + c, ctrl + v делаю сюда
от 3 до 15 наносекунд
let mut salsa20 = Salsa20::new(Key16([1; 16]), [0; 8], 0);
   let mut buffer = [0; 1024];
   let start = Instant::now();
   salsa20.encrypt(&mut buffer);

   let duration = start.elapsed();

   println!("Time elapsed in expensive_function() is: {:?}", duration);

Код в main.rs,
150 наносекунд:
let mut salsa20 = Salsa20::new(Key16([2; 16]), [0; 8], 0);
   let mut buffer = [0; 1024];
   let start = Instant::now();
   salsa20.encrypt(&mut buffer);

   let duration = start.elapsed();

   println!("Time elapsed in expensive_function() is: {:?}", duration);

в смысле, почему так , че за прикол? почему в бенчмарке этот фрагмент занимает адекватное время 5 нано, а в main.rs при запуске 150 наносекунд?

я не понимаю может я пропустил где-то запятую или что??
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Что значит "в бенчмарке"? --release не забыл?
источник

Д

Дима in Rust — русскоговорящее сообществo
вафель 🧇
Что значит "в бенчмарке"? --release не забыл?
забыл....
источник