38.2K subscribers
1.55K photos
41 videos
5 files
1.7K links
加入频道
powerline-go — минималистичная замена Powerline для Bash, Zsh и Fish, написанная на Go. Проект показывает статус Git/Mercurial, путь в сокращённом виде, виртуальные окружения Python/Ruby и даже время выполнения последней команды.

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

🤖 GitHub

@golang_google
11👍6🥰3
🔐 Permitta — простая и понятная Go-библиотека для контроля доступа (permission management)

Что умеет:
- Управление правами CRUD‑операций (Create, Read, Update, Delete, Execute)
- Тайминг доступа: можно задать, когда права действуют (час/день/неделя и др.)
- Ограничения по квоте и пакетной обработке
- Контроль на уровне сущности: пользователь, роль, группа, организация
- Упорядочение проверки прав — от общего к частному

⚙️ Почему удобно:
- Логика интуитивна, но справляется с комплексными сценариями
- Ясная структура — подойдёт и новичкам, и опытным разработчикам
- Open-source (MIT), легко добавить в проект:

go get -u github.com/limitlessDonald/permitta

📌 Github

@golang_google
12👍5🥰3🤔2
👣 Как Go 1.24 сэкономил сотни гигабайт памяти

В Datadog обновили Go до версии 1.24 и сразу заметили резкое падение использования памяти.

Почему?

В Go 1.24 появилась новая реализация хеш-таблиц — Swiss Tables, вдохновлённая подходом от Google.

📌 Что изменилось в Go:
— больше никаких overflow-бакетов
— увеличен load factor до 87.5%
— аллокация гибче: split вместо полного копирования
— меньше фрагментации и лучше кэш-локальность

📊 Пример:
map с 3.5 млн элементов:
• Go 1.23 — 726 MiB на бакеты
• Go 1.24 — 217 MiB
→ Экономия: ~500 MiB на одну карту

Но настоящая магия началась позже:

🛠️ Они нашли, что в структуре Response:
• были неиспользуемые поля (`RoutingKey`, `LastModified`)
• поле ShardType было int, хотя хватало uint8

После чистки размер структуры упал с 56 до 24 байт — и это дало ещё -250 MiB RSS с одного пода.

💡 Выводы:
1. Обновление Go = бесплатная оптимизация карт
2. Оптимизация структуры данных = ещё больше профита
3. Профилирование и метрики — must-have

📉 В итоге: сотни гигабайт экономии без изменения логики приложения.

🔗 Полный разбор:
https://www.datadoghq.com/blog/engineering/go-swiss-tables

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍2113👏1