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

Тема в разделе "Программирование", создана пользователем $LIVA MAFIA, 26 июн 2025.

  1. $LIVA MAFIA

    By:$LIVA MAFIA26 июн 2025
    Moderator
    Команда форума Модератор

    Регистрация:
    18 май 2021
    Сообщения:
    20.334
    Симпатии:
    40.457
    [Игорь Панасюк] [Balun Courses] Оптимизация Go, как в BigTech (2025)
    777

    Слив курса Оптимизация 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

    Продажник:

    Скачать:
     
Похожие темы
  1. Stive
    Ответов:
    1
    Просмотров:
    24
  2. $LIVA MAFIA
    Ответов:
    3
    Просмотров:
    1.988
  3. #SuperPlum
    Ответов:
    0
    Просмотров:
    58
  4. $LIVA MAFIA
    Ответов:
    0
    Просмотров:
    91
  5. $LIVA MAFIA
    Ответов:
    0
    Просмотров:
    26
  6. $LIVA MAFIA
    Ответов:
    0
    Просмотров:
    28
  7. #SuperPlum
    Ответов:
    0
    Просмотров:
    24
Загрузка...