Profile-guided optimization в Go 1.21
Перевод статьи про profile-guided optimization (PGO)
🇷🇺 Перевод: https://habr.com/ru/articles/766460/
🇺🇸 Оригинал: https://go.dev/blog/pgo
#golang |❤ Backend Terki
Перевод статьи про profile-guided optimization (PGO)
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
Введение в
В статье он описывает как работать с трассировкой в Go.
#golang |❤ Backend Terki
go tool trace
Rhys Hiltner, инженер-программист Twitch, работает над улучшением опыта разработчиков. Он является автором критически важных частей чат-сервера Twitch (который он написал на Go) и работает над контролем задержек, вносимых сборщиком мусора.В статье он описывает как работать с трассировкой в Go.
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
Sourcegraph
An Introduction to go tool trace
Find and fix things across all of your code with Sourcegraph universal code search.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Learn GO Fast: Full Tutorial
This is a full tutorial on learning Golang! From start to finish in less than an hour, including a full demo of how to build an api in Go. No fluff, just what you need to know.
0:00 Introduction to Golang
6:25 Constants Variables and Basic Data Types
13:14…
0:00 Introduction to Golang
6:25 Constants Variables and Basic Data Types
13:14…
River: быстрая и надежная очередь заданий для Go + Postgres
https://brandur.org/river
#golang |❤ Backend Terki
https://brandur.org/river
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
brandur.org
River: a Fast, Robust Job Queue for Go + Postgres
Introducing River, a Postgres-based job queue designed for resilience and correctness through strong transactional guarantees.
Плейлист с докладами с GopherConAU 2023
🎬 https://www.youtube.com/playlist?list=PLN_36A3Rw5hFsJqqs7olOAxxU-WJGlXS0
#golang |❤ Backend Terki
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
An interactive study of common retry methods
Сеть ненадежна и иногда приходится выполнять запросы повторно. В статье автор рассказывает как правильно это делать.
https://encore.dev/blog/retries
❤ Backend Terki
Сеть ненадежна и иногда приходится выполнять запросы повторно. В статье автор рассказывает как правильно это делать.
https://encore.dev/blog/retries
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроены мапы под капотом: гайд для Go-разработчика
Павел Комаров из AvitoTech в подробностях рассмотрел процесс записи и чтения данных в мапы, важность передачи количества элементов при создании мапы, а также уделил внимание проблеме переполнения и эвакуации элементов, даже до уровня отдельных битов.
https://habr.com/ru/companies/avito/articles/774618/
#golang |❤ Backend Terki
Павел Комаров из AvitoTech в подробностях рассмотрел процесс записи и чтения данных в мапы, важность передачи количества элементов при создании мапы, а также уделил внимание проблеме переполнения и эвакуации элементов, даже до уровня отдельных битов.
https://habr.com/ru/companies/avito/articles/774618/
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
Go advanced concurrency patterns
1️⃣ https://blogtitle.github.io/go-advanced-concurrency-patterns-part-1/
2️⃣ https://blogtitle.github.io/go-advanced-concurrency-patterns-part-2-timers/
#golang |❤ Backend Terki
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
Type assertion vs type switches in Go
https://rednafi.com/go/type_assertion_vs_type_switches/
#golang |❤ Backend Terki
https://rednafi.com/go/type_assertion_vs_type_switches/
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
Redowan's Reflections
Type assertion vs type switches in Go
Despite moonlighting as a gopher for a while, the syntax for type assertion and type
switches still trips me up every time I need to go for one of them.
So, to avoid digging through the docs or crafting stodgy LLM prompts multiple times, I
decided to jot…
switches still trips me up every time I need to go for one of them.
So, to avoid digging through the docs or crafting stodgy LLM prompts multiple times, I
decided to jot…
Please open Telegram to view this post
VIEW IN TELEGRAM
golangbot
Go WebSocket Tutorial
Learn how the WebSocket protocol works and how to create a simple WebSocket server using Go.
Основы тестирования в Go: mock-объекты, fuzzing и property-based testing
https://habr.com/ru/companies/otus/articles/800717/
#golang |❤ Backend Terki
https://habr.com/ru/companies/otus/articles/800717/
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Основы тестирования в Go: mock-объекты, fuzzing и property-based testing
Привет, Хабр! Golang как ЯП очень хорош для разработки высокопроизводительных приложений . В любом проекте наступает момент, когда нужно проверить, насколько хорошо все работает на самом деле, это...
Analyzing Go Heap Escapes
https://landontclipp.github.io/blog/2023/07/15/analyzing-go-heap-escapes/
#golang |❤ Backend Terki
https://landontclipp.github.io/blog/2023/07/15/analyzing-go-heap-escapes/
#golang |
Please open Telegram to view this post
VIEW IN TELEGRAM
topofmind.dev
Analyzing Go Heap Escapes - Top of Mind
Analyzing how Go decides what escapes to the heap, and how to visualize it in VSCode.
https://www.figma.com/blog/how-figmas-databases-team-lived-to-tell-the-scale
История из технического блога Figma о том, как они скалировали свои базы данных.
❤ Backend Terki
История из технического блога Figma о том, как они скалировали свои базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
Figma
How Figma's Databases Team Lived to Tell the Scale | Figma Blog
Our nine month journey to horizontally shard Figma’s Postgres stack, and the key to unlocking (nearly) infinite scalability.
Серия «Проектирование систем: Полное руководство по созданию высокопроизводительных систем потоковой передачи данных с нуля!»
https://towardsdatascience.com/system-design-series-0-to-100-guide-to-data-streaming-systems-3dd584bd28fa
❤ Backend Terki
https://towardsdatascience.com/system-design-series-0-to-100-guide-to-data-streaming-systems-3dd584bd28fa
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
System Design Series: The Ultimate Guide for Building High-Performance Data Streaming Systems from Scratch!
Learning data streaming systems and their nuances by building a real-world recommendation system using Kafka, Cassandra, and microservices
System design: Distributed Concurrency Control
https://medium.com/@amitvsolutions/system-design-distributed-concurrency-control-36d634b13905
❤ Backend Terki
https://medium.com/@amitvsolutions/system-design-distributed-concurrency-control-36d634b13905
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
System design: Distributed Concurrency Control
Concurrently control is a very important concept of DBMS which ensures the simultaneous execution or manipulation of data by several…
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Знакомство с хранилищем Ceph в картинках
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных...
Forwarded from Ozon Tech
Ловите подборку наших докладов с Saint HighLoad++
ℹ️ Особенно полезно платформенным разработчикам.
Виктор Корейша, руководитель направления Managed Services:
Масштабирование системы хранения секретов на базе HashiCorp Vault
Проблемы Vault и их решения внешними и собственными инструментами.
📱 Смотреть на YouTube
Ян Силов, руководитель отдела разработки «Контроль и тарификация курьеров»:
Как мы шли к 5 000 RPS на запись
Наш опыт оптимизации работы сервисов при росте нагрузки на систему.
📱 Смотреть на YouTube
Евгений Пак, руководитель отдела разработки «Инструменты AB-тестирования и стенды метрик»:
Стенд метрик: как построить архитектуру для расчёта тысячи метрик и попасть в SLA
Продуктовый подход, процессы и техническая реализация стенда для расчёта порядка тысячи метрик для всех экспериментов компании.
📱 Смотреть на YouTube
Пётр Портнов, старший разработчик информационных систем:
Обновления данных в поиске за секунды. Быстробновляемые атрибуты в поисковом движке Ozon
История разработки собственного «быстрого хранилища» на базе Apache Lucene.
📱 Смотреть на YouTube
Ильяс Нежибицкий, руководитель группы разработки Service Discovery:
Хватит себя обманывать, или Давайте посмотрим, как работают статистические балансировщики нагрузки
Проблемы эффективности балансировки запросов и решения для больших инсталляций.
📱 Смотреть на YouTube
Михаил Кабищев, руководитель департамента разработки PaaS:
Как регулярно терять один ДЦ и не волноваться
История о том, как мы масштабировались на 3 ДЦ и научились работать при отсутствии связи с любым из них.
📱 Смотреть на YouTube
Андрей Коняев, руководитель группы разработки DWH tools:
Hadoop в 3 ДЦ
Наш опыт растягивания Hadoop на 3 дата-центра.
📱 Смотреть на YouTube
Павел Грибанов, ведущий разработчик платформы нагрузочного тестирования:
Зачем в Ozon понадобилось написать свой gRPC-клиент для нагрузочного тестирования, и как мы это сделали
Нагрузочное тестирование в Ozon и реализация своего gRPC-генератора.
📱 Смотреть на YouTube
Анатолий Межебицкий, руководитель группы разработки Capacity Planning:
Capacity Planning в Ozon
Баланс распределения общего бюджета для масштабирования бизнеса и «железа», которое выдержит высокую нагрузку.
📱 Смотреть на YouTube
#ozontech_experts
Виктор Корейша, руководитель направления Managed Services:
Масштабирование системы хранения секретов на базе HashiCorp Vault
Проблемы Vault и их решения внешними и собственными инструментами.
Ян Силов, руководитель отдела разработки «Контроль и тарификация курьеров»:
Как мы шли к 5 000 RPS на запись
Наш опыт оптимизации работы сервисов при росте нагрузки на систему.
Евгений Пак, руководитель отдела разработки «Инструменты AB-тестирования и стенды метрик»:
Стенд метрик: как построить архитектуру для расчёта тысячи метрик и попасть в SLA
Продуктовый подход, процессы и техническая реализация стенда для расчёта порядка тысячи метрик для всех экспериментов компании.
Пётр Портнов, старший разработчик информационных систем:
Обновления данных в поиске за секунды. Быстробновляемые атрибуты в поисковом движке Ozon
История разработки собственного «быстрого хранилища» на базе Apache Lucene.
Ильяс Нежибицкий, руководитель группы разработки Service Discovery:
Хватит себя обманывать, или Давайте посмотрим, как работают статистические балансировщики нагрузки
Проблемы эффективности балансировки запросов и решения для больших инсталляций.
Михаил Кабищев, руководитель департамента разработки PaaS:
Как регулярно терять один ДЦ и не волноваться
История о том, как мы масштабировались на 3 ДЦ и научились работать при отсутствии связи с любым из них.
Андрей Коняев, руководитель группы разработки DWH tools:
Hadoop в 3 ДЦ
Наш опыт растягивания Hadoop на 3 дата-центра.
Павел Грибанов, ведущий разработчик платформы нагрузочного тестирования:
Зачем в Ozon понадобилось написать свой gRPC-клиент для нагрузочного тестирования, и как мы это сделали
Нагрузочное тестирование в Ozon и реализация своего gRPC-генератора.
Анатолий Межебицкий, руководитель группы разработки Capacity Planning:
Capacity Planning в Ozon
Баланс распределения общего бюджета для масштабирования бизнеса и «железа», которое выдержит высокую нагрузку.
#ozontech_experts
Please open Telegram to view this post
VIEW IN TELEGRAM