Size: a a a

2020 December 11

a

antuan in Rust Beginners
antuan
как можно Result<String> превратить в Option<String> кроме как match'ем? Типа, если Result::Err, то None
.map_or(None, |v|Some(v))
всем спасибо :)
источник

ИЛ

Иван Лещенко... in Rust Beginners
antuan
как можно Result<String> превратить в Option<String> кроме как match'ем? Типа, если Result::Err, то None
.ok()
источник

a

antuan in Rust Beginners
ещё круче, благодарю
источник

y

ymdev in Rust Beginners
Я добавил вектор в код, чтобы оптимизация не выкинула цикл https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=465a600e416402448d5a970a10d5e468
и запускаю через cargo run --release
Результат - 24.331994789s

Плюсы - код https://pastebin.com/UMZy2qEV
Запускаю g++ ./test.cpp -O3 && ./a.out. Флаг -O3 - это оптимизация если что
Результат - 23.2111 sec
источник

ИЛ

Иван Лещенко... in Rust Beginners
ymdev
Я добавил вектор в код, чтобы оптимизация не выкинула цикл https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=465a600e416402448d5a970a10d5e468
и запускаю через cargo run --release
Результат - 24.331994789s

Плюсы - код https://pastebin.com/UMZy2qEV
Запускаю g++ ./test.cpp -O3 && ./a.out. Флаг -O3 - это оптимизация если что
Результат - 23.2111 sec
У тебя там куча аллокаций происходит, так как ты не выделил буфер заранее
источник

y

ymdev in Rust Beginners
Иван Лещенко
У тебя там куча аллокаций происходит, так как ты не выделил буфер заранее
ага, но я чет не нашел, как задать длину вектора заранее
источник

ИЛ

Иван Лещенко... in Rust Beginners
::with_capacity(N)
источник

ИЛ

Иван Лещенко... in Rust Beginners
И все-равно, ты запросишь аллокацию огромного буфера
источник

ИЛ

Иван Лещенко... in Rust Beginners
Это тоже не бесплатно
источник

MB

Mikail Bagishov in Rust Beginners
ymdev
Я добавил вектор в код, чтобы оптимизация не выкинула цикл https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=465a600e416402448d5a970a10d5e468
и запускаю через cargo run --release
Результат - 24.331994789s

Плюсы - код https://pastebin.com/UMZy2qEV
Запускаю g++ ./test.cpp -O3 && ./a.out. Флаг -O3 - это оптимизация если что
Результат - 23.2111 sec
источник

MB

Mikail Bagishov in Rust Beginners
ymdev
Я добавил вектор в код, чтобы оптимизация не выкинула цикл https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=465a600e416402448d5a970a10d5e468
и запускаю через cargo run --release
Результат - 24.331994789s

Плюсы - код https://pastebin.com/UMZy2qEV
Запускаю g++ ./test.cpp -O3 && ./a.out. Флаг -O3 - это оптимизация если что
Результат - 23.2111 sec
А еще, --release в расте это -O2 у gcc, хорошо бы их привести в соответствие
источник

y

ymdev in Rust Beginners
мне было не важно, что добавлять. Главное, чтобы цикл остался и код был более-менее похож друг на друга у двух языков
источник

MB

Mikail Bagishov in Rust Beginners
Потому что для точности замеров желательно минимизировать постороннюю работу
источник

y

ymdev in Rust Beginners
Mikail Bagishov
А еще, --release в расте это -O2 у gcc, хорошо бы их привести в соответствие
собрал. Но разницы там уже не видно
источник

MB

Mikail Bagishov in Rust Beginners
Mikail Bagishov
Потому что для точности замеров желательно минимизировать постороннюю работу
Ну а еще это банально короче
источник

MB

Mikail Bagishov in Rust Beginners
В итоге получилась примерно равная скорость?
источник

y

ymdev in Rust Beginners
да, секунда разрыв
источник

MB

Mikail Bagishov in Rust Beginners
А что если под clang запустить?
источник

y

ymdev in Rust Beginners
Mikail Bagishov
А что если под clang запустить?
ой, его ставить надо)
источник

y

ymdev in Rust Beginners
Главное отвел душу, что скорость +- такая же и можно дальше учить язык)
источник