Range по функциям в Go 1.23
В Go 1.23 добавлена новая возможность *ranging over functions* (итераторы)...
Go sync.Pool и механика, лежащая в его основе
sync.Pool - это место, где вы можете хранить временные объекты для последующего использования....
Использование benchstat проекций в анализе Go бенчмарков
В 2023 году benchstat был полностью переработан: появились проекции(projections), фильтрация и группировки, позволяющие проводить надежные сравнения по любому измерению, определяемому вашими суббенчмарками (они же «cases»)...
Go sync.WaitGroup и Проблема выравнивания
WaitGroup - это способ подождать, пока несколько горутин закончат свою работу. Мы начнем с основ, а затем разберемся, как это устроено под капотом....
Go sync.Mutex. Normal и Starvation Mode
Mutex, или MUTual EXclusion, в Go - это способ убедиться, что только одна горутина одновременно работает с общим ресурсом. Этим ресурсом может быть кусок кода, целое число, map, структура, канал или практически все, что угодно....
Go Профилировщики
Обзор профилировщиков, встроенных в среду выполнения Go: CPU Profiler, Memory Profiler, Block Profiler и Mutex Profiler....
Двенадцать Добродетелей Рационалиста
Двенадцать добродетелей рациональности — это набор принципов, которые помогут вам стать более разумным человеком. Эти добродетели помогут вам избегать ошибок в мышлении и принятии решений, а также помогут вам развивать критическое мышление и логику....
Ментальная модель языка Go
Основная задача Go - мультиплексировать и абстрагировать аппаратные ресурсы, подобно операционной системе. Для этого обычно используются две основные абстракции: Планировщик Goroutine(Goroutine Scheduler) и Сборщик мусора(Garbage Collector)...
Диспетчеризация интерфейса
Рассмотрим вызовы методов интерфейса в C++ (GCC), Java (OpenJDK/HotSpot), C# (CLR), Go и Rust....
Сравнение производительности с пакетом unique
Interning - это процесс хранения в памяти только одной копии значения и совместного использования уникальной ссылки на нее вместо аллокации нескольких копий и траты памяти....