Использование benchstat проекций в анализе Go бенчмарков

Использование benchstat проекций в анализе Go бенчмарков

В 2023 году benchstat был полностью переработан: появились проекции(projections), фильтрация и группировки, позволяющие проводить надежные сравнения по любому измерению, определяемому вашими суббенчмарками (они же «cases»)...

ноября 6, 2024 · 11 минут · German Gorelkin
Go sync.WaitGroup и Проблема выравнивания

Go sync.WaitGroup и Проблема выравнивания

WaitGroup - это способ подождать, пока несколько горутин закончат свою работу. Мы начнем с основ, а затем разберемся, как это устроено под капотом....

октября 17, 2024 · 12 минут · German Gorelkin
Go sync.Mutex. Normal и Starvation Mode

Go sync.Mutex. Normal и Starvation Mode

Mutex, или MUTual EXclusion, в Go - это способ убедиться, что только одна горутина одновременно работает с общим ресурсом. Этим ресурсом может быть кусок кода, целое число, map, структура, канал или практически все, что угодно....

октября 13, 2024 · 8 минут · German Gorelkin
Go Profilers

Go Профилировщики

Обзор профилировщиков, встроенных в среду выполнения Go: CPU Profiler, Memory Profiler, Block Profiler и Mutex Profiler....

октября 7, 2024 · 15 минут · German Gorelkin
Двенадцать добродетелей рационалиста

Двенадцать Добродетелей Рационалиста

Двенадцать добродетелей рациональности — это набор принципов, которые помогут вам стать более разумным человеком. Эти добродетели помогут вам избегать ошибок в мышлении и принятии решений, а также помогут вам развивать критическое мышление и логику....

сентября 22, 2024 · 9 минут · German Gorelkin
Ментальная модель языка Go

Ментальная модель языка Go

Основная задача Go - мультиплексировать и абстрагировать аппаратные ресурсы, подобно операционной системе. Для этого обычно используются две основные абстракции: Планировщик Goroutine(Goroutine Scheduler) и Сборщик мусора(Garbage Collector)...

сентября 18, 2024 · 5 минут · German Gorelkin
Диспетчеризация интерфейса

Диспетчеризация интерфейса

Рассмотрим вызовы методов интерфейса в C++ (GCC), Java (OpenJDK/HotSpot), C# (CLR), Go и Rust....

сентября 9, 2024 · 13 минут · German Gorelkin
Сравнение производительности с пакетом unique

Сравнение производительности с пакетом unique

Interning - это процесс хранения в памяти только одной копии значения и совместного использования уникальной ссылки на нее вместо аллокации нескольких копий и траты памяти....

сентября 6, 2024 · 2 минуты · German Gorelkin
Динамическая и статическая диспетчеризация

Динамическая и статическая диспетчеризация

В этой статье объясняется разница между динамической диспетчеризацией (поздним связыванием) и статической диспетчеризацией (ранним связыванием). Мы также коснемся различий в языковой поддержке виртуальных и статических методов и того, как можно избежать использования виртуальных методов....

сентября 5, 2024 · 7 минут · German Gorelkin
Глубокое погружение в German Strings

Глубокое погружение в German Strings

Мы хотим углубиться в тонкости реализации German Strings и рассказать о том, почему оптимизации, описанные в нашем предыдущем посте, необходимы для высокопроизводительной обработки строк....

сентября 4, 2024 · 6 минут · German Gorelkin