Визуализируем GC

Статья наглядно исследует новый сборщик мусора Green Tea в Go 1.25/1.26.

Автор пишет визуализатор кучи, показывающий, как Go размещает объекты одного размерного класса рядом друг с другом и сравнивает его с C#. Он отмечает, что в отличие от C#, Go никогда не перемещает их при сборке.

Ключевое улучшение Green Tea в том, что вместо обхода указателей по мере их обнаружения со случайным доступом к памяти, GC теперь сканирует span целиком и сохраняет знания о найденных указателях в очередь на будущее и это подтверждается через perf.

В конуе автор демонстрирует главную слабость неперемещающего GC. После освобождения 90% объектов разряженные страницы не возвращаются системе, потому что выжившие объекты "закрепляют" span'ы. Для сравнения, компактирующий GC в C# справляется с этим автоматически, а в Go приходится вручную копировать выжившие объекты в новые слайсы

Новости

Post Thumbnail

Макбук тачскрин

Статья аж 18-го года, и судя по комитам, проект никак не развивается. Но он все еще прикольный. В статье про проект Sistine, который превращает экран MacBook в тачскрин с помощью зеркальца, бумажной тарелки, дверной петли и клея стоимостью около доллара. Пр...

Post Thumbnail

Самодельные арены в Rust

В статье автор рассказывает про реализацию арен в Rust с нуля. Получилось такое себе пошаговое руководство от простейшей обертки над Vec до продвинутой версии с сырыми буферами, UnsafeCell и поддержкой динамических типов через nightly-фичу allocator_api. Ав...

Post Thumbnail

Выживание с постгрей

Руководство по выживанию с Postgres для стартапов, основанное на двухлетнем опыте автора. Ну и не только для стартапов, в статье довольно много дельных советов От базовых принципов проектирования схем и написания эффективных запросов до продвинутых тем врод...

Post Thumbnail

Я сделал!

Beej (автор знаменитых Beej's Guides) пишет философское эссе о разнице между "сделать самому" и "попросить сделать". Он может попросить Claude написать код, сгенерировать sci-fi отрывок, нарисовать картину или даже, но не чувствует, что это сделал он, и потому...

Post Thumbnail

Пишем от руки

Нил Стивенсон, уже 25 лет пишущий все свои романы перьевой ручкой на бумаге. И в этой статье он объясняет, почему письмо от руки полезно для мозга - исследования подтверждают, что задействуется больше нейронных связей. Автор дает практические советы: не ис...

Post Thumbnail

GDPatch

GDPatch - это новый универсальный загрузчик модов для Godot 4.x, написанный на Rust, который вместо патчинга движка или игровых файлов перехватывает системные вызовы файловой системы, подменяя .pck-файлы и перенаправляя чтения на модифицированный контент. Тако...

Статьи

Post Thumbnail

DNS на Zig

Это должен был быть перевод статьи "From Log Reader to Packet Crafter — Building DNS from Scratch in C". Но автор довольно фигово написал исходную статью и не удосужился показать весь написанный код, Поэтому я решил пойти дальше, реализовать очень маленький ин...

Post Thumbnail

Playdate

Наше поколение выросло вместе с первыми консолями. Мы все с теплотой вспоминаем время, когда у нас появилась первая денди. Теперь у нас есть самые разные движки и большие мощности для игр. Но чем больше возможностей, тем сложнее начать что-то делать, сложне...

Post Thumbnail

Привет Ethernet

Если вы читаете эту статью, то есть очень большая вероятность, что прямо сейчас вы пользуетесь Ethernet соединением где-то между вашими устройствами и хостингом, на котором размещён этот блог. Семейство технологий Ethernet - это строительные блоки для современ...

Post Thumbnail

RAG в Go проекте

Одна из ключевых задач для компаний, работающих с искусственным интеллектом, - обеспечить эффективный доступ к внутренним знаниям. На первый взгляд всё просто: загрузи корпоративные документы в большую языковую модель (LLM) и дай ей генерировать ответы. Но на ...

Инструменты

Post Thumbnail

pgext

Каталог расширений PostgreSQL — сайт позволяет искать расширения, семейства пакетов, зависимости и проверять совместимость с конкретными версиями Postgres и операционных систем. По сути, единый индекс вселенной Postgres-расширений.

Post Thumbnail

metago

Инструмент метапрограммирования для Go на основе шаблонов: вы определяете переиспользуемый Go-шаблон в файле *.metago (синтаксис Go-темплейтов), а в исходном коде вешаете директиву `//mgo:gen stringer` на тип или объявление, и metago рекурсивно сканирует проек...

Post Thumbnail

glyphcss

Библиотека для рендеринга 3D-моделей форматов OBJ, glTF, GLB, STL, MagicaVoxel и VOX)в ASCII-арт внутри одного HTML-элемента <pre>, без WebGL и <canvas>. Растеризатор проецирует полигоны, заполняет символьную сетку cols × rows и пишет одну строку в textCon...

Post Thumbnail

moonBASIC

Это современный BASIC с компилятором в байткод и встроенным рантаймом для 2D/3D-графики, физики и сети. Не интерпретатор, а прям настоящий компилятор. Исходники .mb компилируются в .mbc и исполняются на VM, интегрированной с Raylib, Jolt, Box2D и ENet через CG...