39.2K subscribers
1.66K photos
46 videos
5 files
1.79K links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Анализ логов в реальном времени с Gonzo

Gonzo — это мощный TUI для анализа логов, вдохновленный k9s. Он предлагает красивый интерфейс для работы с потоками логов, включая интерактивные графики и AI-аналитику. Поддержка OpenTelemetry и продвинутые фильтры делают его идеальным инструментом для разработчиков.

🚀Основные моменты:
- Реальный анализ логов с потоковой обработкой
- Интерактивная панель с графиками и навигацией
- Поддержка фильтрации по регулярным выражениям
- Темы оформления и возможность настройки
- AI-аналитика для выявления паттернов и аномалий

📌 GitHub: https://github.com/control-theory/gonzo

#go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥64
👣 Разбор статьи о том, как Go управляет памятью

Go использует собственную, достаточно сложную модель аллокации памяти, которая сильно отличается от традиционного malloc. Вместо прямой работы с кучей Go оперирует несколькими уровнями:

- Arena - основной блок памяти в 64 МБ, который Go выделяет у ОС.
- Page - каждая арена делится на страницы по 8 КБ.
- Span - набор страниц, который используется для аллокаций объектов одного размера.
- Size class - категории размеров объектов (от tiny до large), каждая из которых имеет свой способ обработки.

Память также делится на:
- scan (объекты с указателями, которые должен обходить GC),
- noscan (объекты без указателей, GC может их игнорировать).

Аллокация объектов
- Tiny-объекты (менее 16 байт) могут группироваться в один слот для ускорения.
- Small-объекты (до 32 КБ) выделяются из span’ов в соответствии с size class.
- Large-объекты (более 32 КБ) выделяются напрямую из кучи (heap).

Escape analysis
Go-компилятор анализирует, выходит ли переменная за пределы функции:
- если нет → объект попадает на стек,
- если да → объект уходит в кучу.
Это решает судьбу каждой переменной и напрямую влияет на работу GC.

Стек горутин
- Каждая горутина стартует со стека в 2 КБ.
- Стек растёт динамически (copy & grow) и может сжиматься.
- При глубокой рекурсии или сложных вычислениях рост стека может быть дорогим, так как требует копирования всех данных.

Практические советы
1. Избегайте лишних tiny / small аллокаций в горячих функциях - каждая мелочь создаёт нагрузку на GC.
2. Переиспользуйте срезы и буферы (`row[:0]`, sync.Pool) для минимизации мусора.
3. Объединяйте переменные в структуры, если они живут одинаковое время, чтобы уменьшить число malloc’ов.
4. Следите за размером объектов, чтобы они не перескакивали из small в large — это увеличивает расходы.
5. Профилируйте escape analysis (`go build -gcflags="-m"`) - он покажет, какие переменные уходят в кучу, а какие остаются на стеке.
6. Следите за ростом стека в рекурсивных функциях - копирование может быть дорогим.

Контроль над аллокацией в Go - это контроль над работой GC. Если понимать, как именно Go управляет памятью, можно проектировать код так, чтобы минимизировать аллокации, упростить жизнь GC и получить значительный прирост производительности.

🟢 Полный разбор здесь: https://nghiant3223.github.io/2025/06/03/memory_allocation_in_go.html
🟢Видео-разбор: https://www.youtube.com/watch?v=VrXQhtpjHWs

@golang_google

#golang #go #memory
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍2417
🚀 Оптимизация контейнеров с Slim

Slim — это инструмент для оптимизации и безопасности контейнеров, который помогает разработчикам уменьшать размер образов до 30 раз, сохраняя их функциональность. Он обеспечивает улучшенную видимость и удобство работы, позволяя легко настраивать и отлаживать контейнеры без необходимости в глубоких знаниях о Linux.

🚀 Основные моменты:
- Уменьшение размера контейнеров и улучшение безопасности.
- Поддержка различных языков программирования и ОС.
- Интерактивный интерфейс для анализа и отладки.
- Автоматическая оптимизация без изменения исходного кода.

📌 GitHub: https://github.com/slimtoolkit/slim

#go
👍74🥰2
👣 PGMCP: AI-Driven PostgreSQL Queries

PGMCP позволяет взаимодействовать с любыми базами данных PostgreSQL через естественные языковые запросы. Пользователи могут задавать вопросы на английском и получать структурированные результаты SQL с автоматической обработкой ошибок и потоковой передачей данных.

🚀Основные моменты:
- Поддержка любого PostgreSQL без изменений схемы
- Безопасный доступ только для чтения
- Автоматическая потоковая передача больших наборов данных
- Интеллектуальное понимание запросов
- Множественные форматы вывода (таблица, JSON, CSV)

📌 GitHub: https://github.com/subnetmarco/pgmcp

@golang_google

#go #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥76😁6🤯1
👣 Devsyringe — это CLI-утилита (написана на Go), которая позволяет инжектить динамические значения в код или конфигурации, опираясь на декларативные правила описанные в YAML

🚀Главное:
- Инъекция в любые целевые файлы.
- Поддержка извлечения данных из командной строки.
- Конфигурация через YAML-файлы.
- Удобный интерфейс для управления процессами.

📌 GitHub: https://github.com/alchemmist/devsyringe

#go #golang

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔166👍3🔥1🤩1
👣 Scrutiny: Умный мониторинг состояния жестких дисков

Scrutiny — это веб-интерфейс для мониторинга S.M.A.R.T. состояния жестких дисков, интегрированный с smartd. Он помогает отслеживать критические метрики и предсказывать сбои, предоставляя удобный интерфейс для анализа данных.

🚀Основные моменты:
- Веб-интерфейс с акцентом на критические метрики
- Интеграция с smartd для автоматического обнаружения дисков
- Историческое отслеживание S.M.A.R.T. атрибутов
- Настраиваемые пороги на основе реальных данных о сбоях
- Поддержка уведомлений через вебхуки

📌 GitHub: https://github.com/AnalogJ/scrutiny

#go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥52🥰2🤬1
👣 Kriti Images: высокопроизводительный сервис трансформации изображений на Go

Это open-source альтернатива Cloudflare Images и ImageKit:
- ⚡️ Реальное время — обработка картинок через URL-API
- 🛠 Построено на Go для максимальной производительности
- 🌐 Удобно интегрировать в любые веб-сервисы

🔗 Репозиторий: https://github.com/kritihq/kriti-images

@Golang_google

#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1210🔥6🤔1
👣 Gojekyll: Быстрый генератор статических сайтов на Go

Gojekyll — это клон Jekyll, написанный на Go, предлагающий команды для сборки и сервировки сайтов с поддержкой живой перезагрузки. Он обеспечивает высокую скорость и частичную совместимость с Jekyll, позволяя использовать Liquid для шаблонов и SASS для стилей.


go install github.com/osteele/gojekyll@latest


🚀 Основные моменты:
- Быстрее Jekyll в 20 раз
- Поддержка SASS и Liquid
- Частичная совместимость с Jekyll
- Поддержка Windows
- Эмуляция некоторых плагинов

📌 GitHub: https://github.com/osteele/gojekyll

#go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥32