BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

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

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
https://notes.iveselov.info/programming/rust-closures-combining-move-and-fn
Еще раз про то что любое замыкание это структура данных. и когда мы передаем данные дальше нам обязательно делать move и клон, так как иначе мы не можем заимствовать значения из структуры. в языках где есть GC все тоже через структуру, но так как GC сам может отслеживать время жизни то этого просто не замечаем. Ну а в языках с ручным управлением памятью как в #rust - все немного сложней, но и бенефиты есть за счет этого. Если воспринимать замыкание как структуру данных со всеми данными которые нужны что бы потом запуститься, то все становится на свои места
https://vfoley.xyz/rust-compilation-tip/

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
для себя нашел tag гибко очень можно настроить как enum будет сериализоваться. даже типизированные данные можно сразу сгружать в отдельный проперти одной строчкой. пойду везде поменяю =)
https://github.com/RazrFalcon/cargo-bloat
случайно нашел анализатор того что попадает в бинарник #rust

https://github.com/johnthagen/min-sized-rust а тут немного про все плюшки оптимизации под размер бинарника
Forwarded from 0x1337
Табличка с замерами Latency / Throughput, которой ну очень удобно пользоваться. Кстати, информация куда более полная чем у Агнера Фога:
https://uops.info/table.html

#optimization #asm
Forwarded from 0x1337
Ребята, как я и обещал - радую годным, авторским контентом. Увы, скидывать целиковые статьи, а точнее читать их тут - дело не из простых. Поэтому, сами статьи публикую 'где-то', а сюда скидываю ссылку. Так вот, авторский контент подъехал:

https://habr.com/ru/post/468581/

#publication #asm #cxx #optimization
Forwarded from 0x1337
Данные в процессор загружаются из памяти. Дело это не быстрое:
https://www.7-cpu.com/
Вот тут^ выбери модель интересующего тебя процессора и посмотри, какова цена работы процессора с 'Голой' памятью. На Haswell, например, 90 clock cycles.

#measurments #ram #processor #link
Forwarded from 0x1337
Продолжая рассуждения на тему обмена данных между Процессором и Памятью:
Есть Out Of Order Execution процессор, есть кусочек кода который подгружает данные из Памяти в Кеш Процессора и как-либо обрабатывает их после, и есть код который отрабатывает ДО места где эти данные загружаются / используются.
Из поста выше мы знаем, что обмен данными между Памятью и Процессором - долог: если на момент пользования обмениваемыми данными, в Кеше Процессора их нету - работа встанет. Процессор, конечно, не дурак и просматривая Фреймы наперед, начнет загрузку данных в Кеш еще до того как они реально понадобятся, параллельно выполняя команды идущие ДО. То есть я к чему: нужно писать код так, чтобы до Работы с Памятью можно было сделать какую-либо полезную Память-Независимую работу, на фоне выполнения которой и будет происходить опережающая выгрузка данных из Памяти.

#memory #cache #prefetching
Make LLVM fast again
https://nikic.github.io/2020/05/10/Make-LLVM-fast-again.html.html ускорение #llvm, просто отлично, что оно двигается в направлении ускорения компиляции
https://joellaity.com/2020/01/25/linking.html статья про то как работает линковка в #cpp. впрочем в #rust и #swift тожесамое
https://docs.google.com/presentation/d/1VnisvNEUj0Q7JzHbvGqTOVM9zcLuHhBOwg4aaTx6cMQ/edit#slide=id.p причина почему #cpp это боль. название говорит за себя. нужен целый гайд что бы понять как оно работает. вообще не смешно
https://blog.reverberate.org/2020/05/12/optimizing-date-algorithms.html про оптимизации превращения даты в юникс эпоху, магические числа, #fortran #c с бенчмарками