https://blog.reverberate.org/2020/05/12/optimizing-date-algorithms.html про оптимизации превращения даты в юникс эпоху, магические числа, #fortran #c с бенчмарками
blog.reverberate.org
Optimizing UTC → Unix Time Conversion For Size And Speed
Parsing, performance, and low-level programming.
https://blog.reverberate.org/2009/01/llvm-bitcode-vs-protocol-buffers.html прям по свежему. недавно копал разного вида бенчмарки мгновенной десериализации данных, и тут старая статья про биткод #llvm и #protobuf... если коротко то бикод выиграл по месту... по остальным показателям протобаф ообошел. НО в моих бенчах на #rust имплементация протобафов получилась чуть ли не самая тормозная и в результате выбрал малоизвестную либу
speedy которая работает так же как bincode но оптимизирована по скорости загрузки в память сразу в нужном виде (что критично важно)blog.reverberate.org
LLVM Bitcode vs. Protocol Buffers
Parsing, performance, and low-level programming.
https://habr.com/ru/post/460295/ ансэйф в #rust. Если коротко то компилятор гарантирует отсутствие сигфолдов, но иногда надо манипулировать указателями и там нужен ансэйф
Хабр
Что значит unsafe в Rust?
Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes. Мне доводилось видеть много недопониманий относительно того,...
https://doc.rust-lang.org/std/mem/fn.replace.html
наконец добрались руки везде где надо
наконец добрались руки везде где надо
mem::replace прописать. 0.4секунды из 4.6сек сэкономлено. #rustdoc.rust-lang.org
replace in std::mem - Rust
Moves `src` into the referenced `dest`, returning the previous `dest` value.
https://www.youtube.com/watch?v=onbnb_D1wC8 просто ахтунг что могет NVidia теперь. мощность датацентра уже в одной стойке за 1млн баксов. парам пам пам. расходимся
YouTube
NVIDIA GTC May 2020 Keynote Pt6: NVIDIA A100 Data Center GPU Based on NVIDIA Ampere Architecture
NVIDIA CEO Jensen Huang introduces the NVIDIA A100 data center GPU, which dramatically increases throughput of scale-out and scale-up applications whether for data analytics, training or inference. The A100 delivers 1.5 terabytes per second of bandwidth thanks…
кроссплатформенная компиляция в #rust огнище 🔥🔥🔥🔥🔥 вот только чтото с
https://cloudwafer.com/blog/installing-openssl-on-ubuntu-16-04-18-04/ неплохой ман по тому как скомпилировать
openssl не получилось скомпилировать. но думаю что получится скоро. https://cloudwafer.com/blog/installing-openssl-on-ubuntu-16-04-18-04/ неплохой ман по тому как скомпилировать
openssl под убунтуCloudwafer Blog
Installing OpenSSL on Ubuntu 16.04/18.04
install the latest version of openssl ubuntu
how to install openssl on linux ubuntu
how to install openssl on linux ubuntu
https://medium.com/@qertoip/how-to-generate-an-array-of-random-bytes-in-rust-ccf742a1afd5 обана. незадокументированная мелочь генерации массива рандомных значений в #rust при помощи
randMedium
How to generate a random byte array in Rust 2018?
It’s very simple (but not documented) for byte arrays of 1 to 32 elements:
Можно сжать ссылки в #jvm за счет разделения хипа на несколько. https://habr.com/ru/post/440166/
Хабр
Сжатие указателей в Java
В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которое контролируется опцией UseCompressedOops и включено по-умолчанию для 6...
https://www.youtube.com/watch?v=iTJpGa3W0xc оч хорошо рассказал.
* меньше хип - меньше паузы GC. GC останавливает все потоки. поэтмоу лучше разделить #Jvm на несколько.
* мидеанная задержка меньше 1мксек. изза этого не дюрабл, и зза этого только асинхронная репликация.
* вариант 1 = общение через syscall, лупбэк и сокеты (это поход в ОС и это около 100нс*4) = дорого. лишние копирования (2+) и непредсказуемые задержки.
* вариант 2 = общение через разделяемую память. всеже есть перекопирования. минусов меньше, но есть.
* контекст свич это дорого.
* репликации без логов. просто флаг на данных, и отдельно воркер ходит и перекладывает с одной базы на другую
* асинхронная репликация нарушает консистентность мультикей обновлений.
* меньше хип - меньше паузы GC. GC останавливает все потоки. поэтмоу лучше разделить #Jvm на несколько.
* мидеанная задержка меньше 1мксек. изза этого не дюрабл, и зза этого только асинхронная репликация.
* вариант 1 = общение через syscall, лупбэк и сокеты (это поход в ОС и это около 100нс*4) = дорого. лишние копирования (2+) и непредсказуемые задержки.
* вариант 2 = общение через разделяемую память. всеже есть перекопирования. минусов меньше, но есть.
* контекст свич это дорого.
* репликации без логов. просто флаг на данных, и отдельно воркер ходит и перекладывает с одной базы на другую
* асинхронная репликация нарушает консистентность мультикей обновлений.
YouTube
Chronicle Map — key value хранилище для трейдинга на Java / Роман Левентов (Chronicle Software)
Приглашаем на конференцию Saint HighLoad++ 2025, которая пройдет 23 и 24 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ 2015
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1922.html…
Программа, подробности и билеты по ссылке: https://highload.ru/spb/2025
________
HighLoad++ 2015
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1922.html…
https://www.youtube.com/watch?v=g6mso3BiMuQ голопом по европам
* #kdb. ну оооочень шустрая вещь, но дорогущая (20к в год).
* MOM. Informatica Ultra Messaging. Multicast, Hub&Spot. Store&Forward. двухфазный коммит. доставка только раз. - эта очередь умеет оба варианта. UDP multicast, UDP unicast, TCP.
* ИЛИ сквозная нумерация сообщений. Reliable Multicast. - доставка хотябы раз. потребитель отвечает что обработается только однажды. - самая популярная тема
* надежность: иерархический кворум. сиквенирование сообщений.
* тотальный EventDriven. нет статических данных, только ивент
* [спорный] способ представления фронтенда через реляционный язык.
* CEP - Continues Event Processing - не канает. так как не "мгновенно гибко"
* #kdb. ну оооочень шустрая вещь, но дорогущая (20к в год).
* MOM. Informatica Ultra Messaging. Multicast, Hub&Spot. Store&Forward. двухфазный коммит. доставка только раз. - эта очередь умеет оба варианта. UDP multicast, UDP unicast, TCP.
* ИЛИ сквозная нумерация сообщений. Reliable Multicast. - доставка хотябы раз. потребитель отвечает что обработается только однажды. - самая популярная тема
* надежность: иерархический кворум. сиквенирование сообщений.
* тотальный EventDriven. нет статических данных, только ивент
* [спорный] способ представления фронтенда через реляционный язык.
* CEP - Continues Event Processing - не канает. так как не "мгновенно гибко"
YouTube
Секретные технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
HighLoad++ 2015
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1888.html
Как правило, такое базовое ПО, как языки программирования, системы управления базами данных, брокеры сообщений, используется в разных индустриях и не имеет ярко выраженной…
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1888.html
Как правило, такое базовое ПО, как языки программирования, системы управления базами данных, брокеры сообщений, используется в разных индустриях и не имеет ярко выраженной…
https://www.youtube.com/watch?v=5DDEIyfw0RU
забавная база LMDB -> MDBX
* COW
* без лога транзакций, без востановления
* ACID/MVCC (https://ru.wikipedia.org/wiki/ACID, https://ru.wikipedia.org/wiki/MVCC)
* Multi Consumer Single Producer
* можно читать в режиме ядра ОС. работа с указателями - нет копирования вообще
* LIFO оч крутое решение для этой базы. снижает нагрузку, увеличивет производительность
забавная база LMDB -> MDBX
* COW
* без лога транзакций, без востановления
* ACID/MVCC (https://ru.wikipedia.org/wiki/ACID, https://ru.wikipedia.org/wiki/MVCC)
* Multi Consumer Single Producer
* можно читать в режиме ядра ОС. работа с указателями - нет копирования вообще
* LIFO оч крутое решение для этой базы. снижает нагрузку, увеличивет производительность
YouTube
Движок LMDB — особенный чемпион / Леонид Юрьев (Петер Сервис R&D)
HighLoad++ 2015
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1831.html
Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным…
Презентация и тезисы:
http://www.highload.ru/2015/abstracts/1831.html
Lightning Memory-Mapped Database (LMDB) представляет собой интересный, во многом уникальный движок базы данных класса Berkeley DB и Level DB с ребус-подобным исходным…
https://www.youtube.com/watch?v=f9EbD6iY9zI
как работает SHA-256
https://github.com/in3rsha/sha256-animation
как работает SHA-256
https://github.com/in3rsha/sha256-animation
YouTube
How Does SHA-256 Work?
An explanation of how SHA-256 works, with animations of the operations used inside the hash function.
I'm not a cryptographer though, so I can't explain the reasons behind the design (at the moment).
00:00 - Introduction
↳ 02:20 - Bitcoin Mining
05:05…
I'm not a cryptographer though, so I can't explain the reasons behind the design (at the moment).
00:00 - Introduction
↳ 02:20 - Bitcoin Mining
05:05…
https://www.youtube.com/watch?v=j9tlJAqMV7U
просто афигенный доклад про корутины которые могут переключаться за наносекунду. много кода на #cpp
* переключение между потоками дорого
* префетч наше все
* negative overhead abstraction, again ??? =)
просто афигенный доклад про корутины которые могут переключаться за наносекунду. много кода на #cpp
* переключение между потоками дорого
* префетч наше все
* negative overhead abstraction, again ??? =)
YouTube
CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
http://CppCon.org
“Memory Latency Troubles You? Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
Are you doing…
“Memory Latency Troubles You? Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
Are you doing…
https://www.chromium.org/Home/chromium-security/memory-safety
к слову про ансэйф и почему #rust может помочь в этом очень сильно. абсолютно все части с
к слову про ансэйф и почему #rust может помочь в этом очень сильно. абсолютно все части с
unsafe убрать нельзя, так как оно нужно иногда. но я бы сказал, что >80% - легко. и весь ансэйф станет явным и инкапсулированнымhttps://github.com/paulkernfeld/global-data-in-rust небольшой гайд по работе с данными в #rust которые генерируются для конфигурации или описания, меняются редко
GitHub
GitHub - paulkernfeld/global-data-in-rust: This guide explains how you can use "global data" in Rust
This guide explains how you can use "global data" in Rust - paulkernfeld/global-data-in-rust
https://nick.groenen.me/posts/rust-error-handling/ отличное овервью удобной обработки ошибок в #rust. обзор двух пакетов
https://crates.io/crates/anyhow
https://crates.io/crates/thiserror
thiserror и anyhow. пожалуй заменю у себя старый пакет custom_error на thiserror, лучше инспекция в IDE так как просто делает дерайв со пропертями, используя стандартный инамhttps://crates.io/crates/anyhow
https://crates.io/crates/thiserror
nick.groenen.me
Rust: Structuring and handling errors in 2020
After working through “the book” on the Rust programming language and getting started with the first non-trivial, real-world application I found myself faced with a question I didn’t yet feel well-equipped to handle: “How should you structure error handling…