2 Sept 2025, 03:57 UTC≈13,500 views320 reactionsread 12 August 2026 Latency profiler
Представьте ситуацию, вы пишете код на Python, вызываете посередине библиотеку, например, для inference, понимаете, что программа работает медленно. Собираете профиль с помощью стандартных утилит вроде perf, и в итоге видите следующую картину
90% Matmul
10% some Python
Смотрите на это, расстраивайтесь, ведь умножение матриц скорее всего так сильно соптимизировано, что можно даже не пытаться.
К сч…
👍204🔥79❤29👀4🤡2🐳1🦄1
10 Jul 2025, 20:31 UTC≈18,000 views221 reactionsread 12 August 2026 Trivially relocatable
В C++ есть большая группа людей (включая меня), которая любит брать оптимизации из C -- mem* функции возможно являются сильнейшим преимуществом C перед многими другими языками в перформансе. В C++ об этом думали и делали аттрибут std::trivially_copyable, который разрешает копировать как memcpy. Отлично работает на примитивных структурах и в целом C++ такой быстрый в том числе и из-за этого.
Но…
🔥159❤30👍20🤔5🌭2😐2🙉2👏1
15 May 2025, 13:04 UTC≈24,300 views194 reactionsread 12 August 2026 Size based vector
https://discourse.llvm.org/t/adding-a-size-based-vector-to-libc-s-unstable-abi/86306
Мы тут в Гугле экспериментировали с тем как репрезентовать вектор. Существует два способа:
1. Указатель на начало, конец и указатель на конец вместимости
2. Или указатель на начало, размер и вместимость
Оба варианта имеют свои особенности и слабые места. Первый вариант плох тем, что когда вы хотите посчитать si…
👍153❤24🔥12🤔4😢1
23 Apr 2025, 09:33 UTC≈16,500 views153 reactionsread 12 August 2026 Сегодня про закон Литтла.
Недавно очень много читал про теорию очередей — это математика того, как работа или юниты работы исполняются в системе, особенно когда в системе есть ожидание, лимиты и задержки, когда ресурсы станут доступны. Это довольно актуально для разработки серверов и связи нагрузки с тем, сколько надо давать ресурсов на сервис.
Как теория очередей связана с нагрузкой? Закон Литтла, один из самых пр…
👍109🔥22❤19🤯3
25 Mar 2025, 12:39 UTC≈14,700 views198 reactionsread 12 August 2026 1. Объявили результаты TON: дали серебро, оказался 6-7 по топу (Mindful Kitten), дали $5000. Я доволен, так как не упоролся, но и позанимался чем-то интересным.
2. Meta рассказала про свою версию GWP/Perforator -- профилирование всех датацентров.
So, the engineer typed an “&” after the auto keyword to indicate we want a reference instead of a copy. It was a one-character commit, which, after it was shipped to produ…
🔥123👍47❤15🎉5👏3😱3🤯2
5 Feb 2025, 13:53 UTC≈17,200 views206 reactionsread 12 August 2026 January update (старею)
1. Мой (первый) стажёр из Яндекса опубликовал Perforator — сборщик профилей и перформанса на всём кластере. После 7 лет Сергей уже оч сильный инженер, конечно
https://github.com/yandex/perforator
https://habr.com/ru/companies/yandex/articles/875070/
В Гугле мы занимаемся именно этим (GWP), так что потихоньку мои ученики меня превосходят, а я старею.
Почитайте, хорошо всё сделано, но у мен…
❤115👍43🔥42💘4❤🔥1👏1
12 Jan 2025, 18:55 UTC≈17,300 views134 reactionsread 12 August 2026 Compressed pair
В стандартной библиотеке C++ множество контейнеров принимают allocator<A>, который по дефолту занимает 0 байт. Но в C++ не могут быть структуры (в отличие от C) с sizeof равным нулю. Значит элементами класса их не сделать бесплатно. В итоге приходилось использовать Empty Base Optimization, когда наследование от класса с нулевым размером оптимизируется в void.
Чтобы это как-то унифицировать, в libc++ …
👍90🤯17🔥13❤8🍾6
11 Jan 2025, 18:39 UTC≈15,000 views82 reactionsread 12 August 2026 https://www.vldb.org/pvldb/vol16/p2132-afroozeh.pdf
Прочитал тут статью с VLDB про формат данных в базах данных, который даёт много идей на подумать. Даже есть репозиторий https://github.com/cwida/FastLanes
Авторы ставят перед собой несколько целей для дизайна формата хранения целых чисел
* SIMD friendly
* Поддерживает все виды несложного сжатия: parquet, delta encoding, RLE
Ну так как я что-то делал в этой обла…
👍50🔥16❤8🤯3😱3⚡1👻1
4 Jan 2025, 09:28 UTC≈15,100 views121 reactionsread 12 August 2026 S3 locality
Тут я хотел рассказать о каких-то челленджах в построении storage систем по типу S3. Обычно в таком духе я спрашиваю людей на собеседованиях, поэтому тут мысли вслух, любые совпадения случайны.
Всё понятно с корректностью -- храним метаданные транзакционно, чтобы ни дай бог ничего не потерять, Paxos нам в помощь, это много работы, но хотя бы понятно как сделать.
Диски хоть и дешёвые, но на масштабах S3…
👍83🔥18❤13💯3🤔2🥱1😭1
3 Jan 2025, 10:51 UTC≈13,300 views184 reactionsread 12 August 2026 Отличный пост сегодня на hn, трюк знакомый, пугающий, и вроде даже в комментариях разобрались.
https://news.ycombinator.com/item?id=42579969
https://tavianator.com/2025/shlx.html
Автор поста обнаружил, что при таком патче в определённых условиях.
LOOP:
- MOV RCX, 1
+ MOV ECX, 1
Инструкция SHLX RAX, RAX, RCX (означающая RAX = RAX << RCX) ускоряется в три раза на Alder Lake.
Почему?
Решение этой загадки скорее вс…
🔥109🥱21👍17🙈12🤯9😁6❤4😱4
15 Nov 2024, 22:03 UTC≈17,100 views155 reactionsread 12 August 2026 https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html
Ну и в догонку очень быстрый апдейт. Включить bound checks отразилось всего в 0.3% регрессии по всему C++ гугла в среднем. Чтобы было так мало, мы ждали пока FDO (feedback driven optimizers) возьмут новые профили. В итоге кто-то меньше, кто-то больше, но я был доволен результатом. Количество сегфолтов в проде стало на 30% меньше. Се…
👍89🔥49🤡7🤝5❤3👏1🕊1
16 Oct 2024, 07:31 UTC≈21,500 views180 reactionsread 12 August 2026 Мы тут выложили апдейт по тому, что будет с С++ в Google. В общем, на Rust у нас уже можно писать, Carbon все ещё разрабатывается, а с C++ мы будем включать bounds checks во всех приложениях.
Спойлер: включили bound checks во всяких векторах и строчках, немного CPU скушало, но все в пределах нормы. Были страхи, что встретим запрос смерти, который положит весь прод, пока не встретили, но появилась и у вас возможность…
🔥116👍33🤯11❤7😁7🤣4❤🔥1🤔1
Showing the 12 most recent of 20 posts we hold for @experimentalchill. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.