👨‍💻DEV [Игорь Панасюк] [Balun Courses] Оптимизация Go, как в BigTech (2025)

[Игорь Панасюк] [Balun Courses] Оптимизация Go, ка_0.png


[Игорь Панасюк] [Balun Courses] Оптимизация Go, как в BigTech (2025)



Слив курса Оптимизация Go, как в BigTech [Balun Courses] [Игорь Панасюк]

Проблемы, которые решает курс:

1. Пишу бизнес-логику и приложения на Go, но не могу разобраться perf-снимот или прочитать код в сторонней библиотеке.

2. Паникую, если нужно оптимизировать код, потому что не знаю, что происходит за пределами синтаксиса.

3. На работе пишу простые фичи, но хочется заниматься чем-то нетривиальным и низкоуровневым.

4. Не могу разобраться в исходном коде Go, потому что не понимаю, как устроен язык/архитектура компьютера.

5. Хочу устроиться в BigTech, но на собеседованиях валюсь на вопросах по внутреннему устройству GO и Computer Science.

За 5 недель на практике научишься выжимать все соки из Golang:

1. Изучишь computer science для работы в BigTech и научишься понимать, как исполняется код от языкового синтаксиса до машинных инструкций.

2. Узнаешь, как устроена операционка и на практике разберешь calling convention и научишься вызывать syscall’ы.

3. С нуля научишься использовать ассемблер в Go для понимания языковых оптимизаций.

4. Научишься оптимизировать код на примерах bigtech-компаний и низкоуровневого программирования.

5. Глубоко разберешь подкапотную работу low-level пакетов: unsafe и runtime, reflect и debug.

6. Научишься использовать профайлер для оптимизаций CPU, памяти и блокировок.

7. И за счет всех этих знаний сможешь повысить уровень ЗП и свою ценность в компании, как специалиста.

Программа курса:
◆ Неделя 1. Основы Computer Science. Часть 1


Урок №1 — Микроархитектура процессора

Урок №2 — Оперативная, кеш память

◆ Неделя 2. Основы Computer Science. Часть 2

Урок №3 — Архитектура операционных систем

Урок №4 — Управления памятью в операционке

◆ Неделя 3. Ассемблер в GO и работа со стеком

Урок №5 — введение в ассемблер Go

Урок №6 — инструкции работы со стеком

◆ Неделя 4. Дополнительные фишки оптимизации, кодинг бенчмарков

Урок №7 — устройство памяти в Go, бенчмарки

Урок №8 — оптимизации в Go

◆ Неделя 5. Рантайм в Go и профилирование

Урок №9 — управление внутренним состоянием рантайма Go

Урок №10 — профилирование в Go

Спойлер:
Программа подробно:

### Основы Computer Science. Часть 1

#### Урок №1 – Микроархитектура процессора

Внутреннее устройство компьютера

- Industry Standard Architecture (ISA)

- Модели разделения памяти

- Организация чипсетов

Внутреннее устройство процессора

- Архитектура CPU

- Многотактовые процессоры

- Конвейер процессора

- Предсказывание переходов

- Устройство регистров

- Типы команд

- SMT и hyperthreading

- Таксономия Флинна

- Пример процессора на Verilog

#### Урок №2 – Оперативная, кеш память

Внутреннее устройство кеша процессора

- Кеш линии

- Политики кэширования

- Когерентность кеша

- Политики инвалидизации кеша

- Уровни кеша

- Способы размещения данных на уровнях кеша

- Чтение и запись в кеш

Внутреннее устройство оперативной памяти

- Memory endian

- Page tables

- Hierarchical page tables

- Страничная адресация

- Трансляция адресов

- Shared memory

- Direct memory access

---

Результат:

- за пару часов получил(-а) основы Computer Science, которые спрашивают на собеседованиях

- умеешь ускорять код через понимание, как он исполняется "под капотом"

### Основы Computer Science. Часть 2

#### Урок №3 – Архитектура операционных систем

Введение в операционные системы

- Что такое операционная система и зачем она нужна?

- Архитектура операционных систем (monolitic, micro)

- ASMP, SMP

- User space

- Kernel space

- Примеры операционных систем xv6

Прерывания и системные вызовы

- fork(), vfork(), exec(), clone()

- Copy on write

- Синхронные, асинхронные прерывания

- User, kernel, interrupt stacks

- Golang syscalls examples

- Буферизация и дескрипторы

#### Урок №4 – Управления памяти в операционке

Механизмы управления памятью

- Memory ordering

- Barriers, out-of-order execution

- Memory reclaim

- Виртуальные и физические адреса

- Memory mapped files

- Swap file

- Translation lookaside buffer

- Линейное выравнивание памяти

- Фрагментация памяти, аллокаторы

- Пример buddy аллокатора в xv6

Абстракции операционной системы

- Процессы, потоки

- Process context

- Interrupt request

- Tasklets

- OOM Killer

- SLAB

- Pipe

---

Результат:

- за пару часов получаешь основы Computer Science, которые спрашивают на собеседованиях

- умеешь ускорять код через понимание, как он исполняется "под капотом"

Домашнее задание:

- написать программы, которые взаимодействуют с операционной системой через syscalls. Написать свои каналы в Go, используя syscall pipe.

---

### Неделя 3

### Ассемблер в GO и работа со стеком

#### Урок №5 – введение в ассемблер Go

Введение в ассемблер Go

- Типы инструкций

- Кроссплатформенность

- Flags register

- Сравнение инструкций

- Addressing modes

#### Урок №6 – инструкции работы со стеком

Стек программы

- Инструкции работы со стеком

- Red zone

- Guard pages

- Stack overflow

- Локальные переменные

- Соглашения вызова функций

- Стековый фрейм

---

Результат:

- понимаешь, как твоя программа транслируется в ассемблерный код

- умеешь писать собственные программы на ассемблере

Домашнее задание:

- написать свою программу на ассемблере Go

---

### Неделя 4

### Дополнительные фишки оптимизации, кодинг бенчмарков

#### Урок №7 – устройство памяти в Go, бенчмарки

Устройство памяти в Go

- Аллокатор Go

- Go арены, спаны

- Go scavenger, madvise calls

- Сравнение с другими языками программирования

- Сборка мусора, балласт

Бенчмарки в Go

- Что такое бенчмарки и зачем они нужны

- Как писать бенчмарки в Go

- Бенчмарки конкурентных программ

#### Урок №8 – оптимизации в Go

Устройство Go

- Escape analysis

- Устройство типов в Go, виртуальные вызовы

Оптимизации в Go

- Примеры базовых оптимизаций

- Работа с пакетом unsafe, работа с uintptr

- Bounds check elimination

- sync.Pool

- Copy and allocate optimizations

- Пакет reflect, законы рефлексии в Go

- Small-size объекты

---

Результат:

- понимаешь внутреннее устройство рантайма Go с точки зрения управления памятью

- умеешь работать с low-level пакетами и рефлексией Go

- на практике умеешь применять оптимизации в Go

Домашнее задание:

- используя рефлексию Go, написать свою собственную реализацию RPC

- С помощью unsafe пакета написать нетривиальные функции. Например, которые не делают лишние копии данных. Дополнительно написать бенчмарки

---

### Неделя 5

### Рантайм в Go и профилирование

#### Урок №9 – управление внутренним состоянием рантайма Go

Управление внутренним состоянием рантайма Go

- Пакет runtime, анализ внутреннего состояния приложения, профилирование

- Пакет debug, способы контролировать внутреннее состояние рантайма Go

- Проблемы фрагментации, сборки мусора, нехватки памяти в приложениях и их решения

Использование продвинутых техник

- Выбор аллокаторов

- CGO, примеры использования

- PGO

#### Урок №10 – профилирование в Go

Профилирование в Go

- Внутреннее устройство профилировщика Go

- Как работать с профилировщиком Go (CLI, Web)

- Типы профилировщиков

- Накладные расходы при профилировании

---

Результат:

- умеешь оптимизировать приложение, используя продвинутые пакеты Go, которые позволяют управлять внутренним состоянием рантайма

- умеешь профилировать приложение

Домашнее задание:

- написать свой микросервис, включив в него работу с CGO, сделать профилирование и применить PGO



—————————————————————————

🔗 Продажник:
Доступно пользователям: Зарегистрированный


📥 СКАЧАТЬ КУРС:
🔐 Хотите получить доступ?

Чтобы увидеть скрытые ссылки и ставить лайки, активируйте VIP-статус.

💎 ПОЛУЧИТЬ ДОСТУП Наш Telegram канал
 

Похожие курсы

Назад
Верх