BufWriter<Master<'_>>
106 subscribers
451 photos
28 videos
34 files
1.71K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
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://vfoley.xyz/rust-compilation-tip/

https://www.philipdaniels.com/blog/2019/rust-release-mode-builds/

для #llvm при компиляции #rust можно указать под какой процессор все компилировать и это может дать ускорение

в моем случае это дополнительно к PGO и LTO дало еще 1% мало но дало =) иногда можно выжать куда больше
Make LLVM fast again
https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html.html ускорение #llvm, просто отлично, что оно двигается в направлении ускорения компиляции
https://blog.reverberate.org/2009/01/llvm-bitcode-vs-protocol-buffers.html прям по свежему. недавно копал разного вида бенчмарки мгновенной десериализации данных, и тут старая статья про биткод #llvm и #protobuf... если коротко то бикод выиграл по месту... по остальным показателям протобаф ообошел. НО в моих бенчах на #rust имплементация протобафов получилась чуть ли не самая тормозная и в результате выбрал малоизвестную либу speedy которая работает так же как bincode но оптимизирована по скорости загрузки в память сразу в нужном виде (что критично важно)