https://blog.guillaume-gomez.fr/articles/2020-03-12+Guide+on+how+to+write+documentation+for+a+Rust+crate
https://blog.guillaume-gomez.fr/articles/2020-03-07+cfg%28doctest%29+is+stable+and+you+should+use+it
про документирование #rust пакетов и тесты экзамлов в документации
пойду ка я напишу доков в свой пакет хотя бы базово https://crates.io/crates/alone_ee
https://blog.guillaume-gomez.fr/articles/2020-03-07+cfg%28doctest%29+is+stable+and+you+should+use+it
про документирование #rust пакетов и тесты экзамлов в документации
пойду ка я напишу доков в свой пакет хотя бы базово https://crates.io/crates/alone_ee
blog.guillaume-gomez.fr
Guide on how to write documentation for a Rust crate
Blog of Guillaume Gomez (Guide on how to write documentation for a Rust crate)
https://yaah.dev/try-blocks вот не знаю, честно, вроде как ОК =) штука, но это экономит не так уж и много строк #rust кода. И наоборот новые кейворды вводит, да и к томуже уверен потом понадобится match прикрутить после ифа с трай... и дароу питон, не уверен что хочу такого. нагородят стопроц. и так не самый простой синтаксис, но как фича для продвинутых, не плохо
New to Me Things
Symme(try blocks)
Introduction
https://habr.com/ru/post/492410/ просто ахренеть крутая статья про то как Яндекс намерял #rust и #cpp, не разобравшись как в прошлый раз мэйлру #rust и #golang
Объективно обсуждать относительные преимущества того или иного языка сложно, особенно если вам сильно нравится один язык и не нравится другой. Весьма часто новый апологет очередного "новоявленного языка-убийцы C++" делает громкие заявления, не разобравшись толком с C++, за что ожидаемо получает по рукам.
Хабр
C++ быстрее и безопаснее Rust, Yandex сделала замеры
Спойлер: C++ не быстрее и не медленнее и вообще смысл не в этом. Эта статья является продолжением славных традиций развенчания мифов крупных российских компаний о языке Rust. Предыдущая была...
https://habr.com/ru/post/216189/ UB (Undefined Behavior) неопределенное поведение. освежить подноготную #cpp
Хабр
Неопределенное поведение в C++
Достаточно сложной темой для программистов на С++ является undefined behavior. Даже опытные разработчики зачастую не могут четко сформулировать причины его возни...
https://cfsamson.github.io/books-futures-explained/introduction.html книга по тому как сделать собственные фьючи в #rust. приколы работы с памятью, пины, экзекьютеры, рантаймы и вэйкеры... ну вся подноготная обьяснена и даже реализованы базовые примеры которые запускаются
https://docs.rs/crossbeam/0.7.3/crossbeam/sync/struct.Parker.html шикарная штука, как оказалось
https://docs.rs/crossbeam/0.7.3/crossbeam/sync/struct.Parker.html шикарная штука, как оказалось
https://alschwalm.com/blog/static/2017/03/07/exploring-dynamic-dispatch-in-rust/ еще про dynamic dispatch в #rust . небольшое сравнение с #cpp
Security Through Obscurity
Exploring Dynamic Dispatch in Rust
Let me preface this by saying that I am a novice in the world of rust (though I'm liking things so far!), so if I make technical...
https://habr.com/ru/post/138132/ #cpp #gcc
https://doc.rust-lang.org/rustc/profile-guided-optimization.html
PGO #rust
#llvm может в оптимизации по статистике профайлера. Profile Guided Optimization (PGO) получается почти как делает это JIT компилятор но в момент компиляции все зашивается и в рантайме уже ускорены какие то не самые оптимальные (вначале) вещи
в моем случае 16к строк #rust кода в базовом случае исолнилось 4.6сек (было 5.0сек). быстрей на почти 7% (pgo и lto оптимизации включены) видимо слишком оптимально пишу код, что компилятору и переставить нечего. смешенные чувства 🙈🤓 оптимизировались лишь места загрузки исходных данных с сериализацией для последующего юзания
https://doc.rust-lang.org/rustc/profile-guided-optimization.html
PGO #rust
#llvm может в оптимизации по статистике профайлера. Profile Guided Optimization (PGO) получается почти как делает это JIT компилятор но в момент компиляции все зашивается и в рантайме уже ускорены какие то не самые оптимальные (вначале) вещи
в моем случае 16к строк #rust кода в базовом случае исолнилось 4.6сек (было 5.0сек). быстрей на почти 7% (pgo и lto оптимизации включены) видимо слишком оптимально пишу код, что компилятору и переставить нечего. смешенные чувства 🙈🤓 оптимизировались лишь места загрузки исходных данных с сериализацией для последующего юзания
Хабр
GCC Profile-guided optimization
Profile-guided optimization (далее PGO) — техника оптимизации программы компилятором, нацеленная на увеличение производительности выполнения программы. В отличии от традиционных способов оптимизации...
https://doc.rust-lang.org/beta/std/sync/struct.Condvar.html Condvar штука которая может залочить поток пока... не исполнилось то что нужное в другом потоке. есть она не только в #rust конечноже
doc.rust-lang.org
std::sync::Condvar - Rust
API documentation for the Rust `Condvar` struct in crate `std`.
https://doc.rust-lang.org/std/panic/fn.catch_unwind.html возможность отловить панику в #rust. но есть и те виды паники которые не отловить и даже этим способом. память закончилась например. и что бы отловить хоть чтонибудь нужна память Х)). приложение просто выйдет с ошибкой, логично
doc.rust-lang.org
catch_unwind in std::panic - Rust
Invokes a closure, capturing the cause of an unwinding panic if one occurs.
JSON в #rust. трейты с примерами
Encode/Deocde
Serialize/Deserialize
http://siciarz.net/24-days-of-rust-working-json/
http://valve.github.io/blog/2014/08/25/json-serialization-in-rust-part-1/
http://valve.github.io/blog/2014/08/26/json-serialization-in-rust-part-2/
кстати не знал про пакет json_macros https://crates.io/crates/json_macros удобненько описывать можно жсон структуры
Encode/Deocde
Serialize/Deserialize
http://siciarz.net/24-days-of-rust-working-json/
http://valve.github.io/blog/2014/08/25/json-serialization-in-rust-part-1/
http://valve.github.io/blog/2014/08/26/json-serialization-in-rust-part-2/
кстати не знал про пакет json_macros https://crates.io/crates/json_macros удобненько описывать можно жсон структуры
siciarz.net
24 days of Rust - working with JSON | Blog | siciarz.net
Important note: this article is outdated! Go to http://zsiciarz.github.io/24daysofrust/ for a recent version of all of 24 days of Rust articles. The blogpost here is kept as it is for historical reasons.
JSON is a workhorse data format of the modern Web.…
JSON is a workhorse data format of the modern Web.…
https://notes.iveselov.info/programming/rust-closures-combining-move-and-fn
Еще раз про то что любое замыкание это структура данных. и когда мы передаем данные дальше нам обязательно делать move и клон, так как иначе мы не можем заимствовать значения из структуры. в языках где есть GC все тоже через структуру, но так как GC сам может отслеживать время жизни то этого просто не замечаем. Ну а в языках с ручным управлением памятью как в #rust - все немного сложней, но и бенефиты есть за счет этого. Если воспринимать замыкание как структуру данных со всеми данными которые нужны что бы потом запуститься, то все становится на свои места
Еще раз про то что любое замыкание это структура данных. и когда мы передаем данные дальше нам обязательно делать move и клон, так как иначе мы не можем заимствовать значения из структуры. в языках где есть GC все тоже через структуру, но так как GC сам может отслеживать время жизни то этого просто не замечаем. Ну а в языках с ручным управлением памятью как в #rust - все немного сложней, но и бенефиты есть за счет этого. Если воспринимать замыкание как структуру данных со всеми данными которые нужны что бы потом запуститься, то все становится на свои места
notes.iveselov.info
Rust Closures: Returning `impl Fn` for `move` closures | IV Notes
https://vfoley.xyz/rust-compilation-tip/
https://www.philipdaniels.com/blog/2019/rust-release-mode-builds/
для #llvm при компиляции #rust можно указать под какой процессор все компилировать и это может дать ускорение
в моем случае это дополнительно к
https://www.philipdaniels.com/blog/2019/rust-release-mode-builds/
для #llvm при компиляции #rust можно указать под какой процессор все компилировать и это может дать ускорение
в моем случае это дополнительно к
PGO и LTO дало еще 1% мало но дало =) иногда можно выжать куда большеhttps://docs.google.com/presentation/d/1B3n6iioXYzYZ7WP9yq7l2_eyHOTsr6jUSOU2nfgGPMY/edit#slide=id.g59eaa0c0cb_4_452
https://docs.google.com/presentation/d/1nQxbBkHYOAXAcodVk-14th5nXhIYaOaa0cK7UG1bgxk/edit#slide=id.g59eaa0c0cb_4_452
https://docs.google.com/presentation/d/16n62-XZ1kpF-lkb2j-jRVnaYeYWZf5EyVy4eBcs0ANc/edit#slide=id.g63261c2bb8_1_184
про Serde в #rust
для себя нашел
https://docs.google.com/presentation/d/1nQxbBkHYOAXAcodVk-14th5nXhIYaOaa0cK7UG1bgxk/edit#slide=id.g59eaa0c0cb_4_452
https://docs.google.com/presentation/d/16n62-XZ1kpF-lkb2j-jRVnaYeYWZf5EyVy4eBcs0ANc/edit#slide=id.g63261c2bb8_1_184
про Serde в #rust
для себя нашел
tag гибко очень можно настроить как enum будет сериализоваться. даже типизированные данные можно сразу сгружать в отдельный проперти одной строчкой. пойду везде поменяю =)Google Docs
2019-05-09 Unpacking Serde (1/3) by Erich Gubler
Unpacking Serde #1 The Serde model and structs
https://www.youtube.com/watch?v=rAl-9HwD858
https://www.youtube.com/watch?v=q6paRBbLgNw
плэйлист по #rust про
https://www.youtube.com/watch?v=q6paRBbLgNw
плэйлист по #rust про
lifetimes annotation and declarative macros смотрел и другие видео от автора. хорошо доступно рассказываетYouTube
Crust of Rust: Lifetime Annotations
In the 2019 Rust Survey, a lot of people were asking for video content covering intermediate Rust content. So in this first video (possibly of many), we're going to investigate a case where you need multiple explicit lifetime annotations. We explore why they…
https://github.com/RazrFalcon/cargo-bloat
случайно нашел анализатор того что попадает в бинарник #rust
https://github.com/johnthagen/min-sized-rust а тут немного про все плюшки оптимизации под размер бинарника
случайно нашел анализатор того что попадает в бинарник #rust
https://github.com/johnthagen/min-sized-rust а тут немного про все плюшки оптимизации под размер бинарника
GitHub
GitHub - RazrFalcon/cargo-bloat: Find out what takes most of the space in your executable.
Find out what takes most of the space in your executable. - RazrFalcon/cargo-bloat
https://mike42.me/blog/2018-06-make-better-cli-progress-bars-with-unicode-block-characters мелочь но не забыть бы. символы для прогрессбара
#terminal , #console , #color
#terminal , #console , #color
Mike's Software Blog
Make better CLI progress bars with Unicode block characters
As a programmer, you might add a progress bar so that the user has feedback while they wait for a slow task.
If you are writing a console (CLI) application, then you need to make your progress bars from text. A good command-line progress bar should update…
If you are writing a console (CLI) application, then you need to make your progress bars from text. A good command-line progress bar should update…
https://gist.github.com/amatellanes/a986f6babb9cf8556e36 так пусть просто полежит. список команд и методов celery #python
Gist
Celery handy commands
Celery handy commands. GitHub Gist: instantly share code, notes, and snippets.
Forwarded from 0x1337
Табличка с замерами Latency / Throughput, которой ну очень удобно пользоваться. Кстати, информация куда более полная чем у Агнера Фога:
https://uops.info/table.html
#optimization #asm
https://uops.info/table.html
#optimization #asm
Forwarded from 0x1337
Ребята, как я и обещал - радую годным, авторским контентом. Увы, скидывать целиковые статьи, а точнее читать их тут - дело не из простых. Поэтому, сами статьи публикую 'где-то', а сюда скидываю ссылку. Так вот, авторский контент подъехал:
https://habr.com/ru/post/468581/
#publication #asm #cxx #optimization
https://habr.com/ru/post/468581/
#publication #asm #cxx #optimization
Хабр
Делись, рыбка, быстро и нацело
Деление — одна из самых дорогих операций в современных процессорах. За доказательством далеко ходить не нужно: Agner Fog[ 1 ] вещает, что на процессорах Intel / AMD мы легко можем получить Latency в...