Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+694новые вакансии за сутки·52 494вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 662
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python6 244
  • Облачные технологии4 749
  • QA вакансии1 736
  • Android1 148
  • Инженер данных800
  • Продакт-менеджер321

Разработка

  • iOS1 092
  • Backend вакансии1 046
  • Fullstack вакансии453
  • AI вакансии391
  • Frontend вакансии376
  • Mobile вакансии27

По стеку

  • Go3 590
  • Java2 153
  • Kotlin942
  • Node.js767
  • Rust544
  • .NET496
  • PHP267
  • C++220
  • C#198

DevOps и инфраструктура

  • Kubernetes2 686
  • Linux-инфраструктура2 117
  • DevOps вакансии1 960
  • Terraform / IaC1 615
  • CI/CD871
  • Мониторинг и Observability742
  • SRE228
  • Кибербезопасность47

Аналитика и данные

  • Аналитик данных495
  • Data Scientist449
  • Бизнес-аналитик351
  • Системный аналитик54

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США23 835
  • Вакансии в Европе9 341
  • Работа в России3 283
  • Вакансии в Канаде2 140

По формату

  • Удалённые вакансии41 311
  • Релокация в США23 835
  • Гибридная работа4 058
  • Офисная работа2 949

По уровню

  • Senior вакансии20 396
  • Middle вакансии11 620
  • Junior вакансии3 665

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Wise139 вакансий
  • Grab134 вакансии
  • Infobip28 вакансий
  • Adyen23 вакансии
  • Darktrace17 вакансий
  • Spotify15 вакансий
  • Celonis11 вакансий
  • Razorpay9 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме GoВсе вопросы
GoMiddleТеория

Как использовать pprof и runtime/trace для диагностики CPU, memory и goroutine leaks?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

pprof собирает CPU/memory/goroutine профили через HTTP-endpoint или benchmarks; runtime/trace даёт timeline с goroutine scheduling. Анализируют через go tool pprof и go tool trace.

pprof: подключение и сбор профилей

Добавьте один импорт — и HTTP-endpoint появится автоматически:

import (
	"net/http"
	_ "net/http/pprof" // регистрирует /debug/pprof/*
)

func main() {
	go http.ListenAndServe("localhost:6060", nil)
	// ... основной сервер
}

Доступные endpoints:

  • /debug/pprof/profile?seconds=30 — CPU профиль на 30 секунд
  • /debug/pprof/heap — heap allocations
  • /debug/pprof/goroutine?debug=2 — goroutine dump с полными стеками
  • /debug/pprof/allocs — все аллокации (включая короткоживущие)
  • /debug/pprof/mutex — contention на мьютексах
  • /debug/pprof/block — блокировки на channel/sync примитивах

Сбор и анализ CPU профиля

# Собрать 30-секундный CPU профиль
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

# Интерактивный режим:
(pprof) top10          # топ-10 функций по CPU
(pprof) list MyFunc    # аннотированный исходник
(pprof) web            # открыть flame graph в браузере (нужен graphviz)
# Сохранить и открыть позже:
curl -o cpu.pprof http://localhost:6060/debug/pprof/profile?seconds=30
go tool pprof -http=:8080 cpu.pprof

Heap профиль: диагностика утечек памяти

go tool pprof http://localhost:6060/debug/pprof/heap

(pprof) top10          # топ по inuse_space
(pprof) -inuse_objects # по количеству объектов
(pprof) -alloc_space   # по общему объёму аллокаций за всё время

Сравнение двух снапшотов для поиска утечки:

curl -o before.pprof http://localhost:6060/debug/pprof/heap
# подождать, нагрузить сервис
curl -o after.pprof http://localhost:6060/debug/pprof/heap
go tool pprof -base before.pprof after.pprof
(pprof) top10

Goroutine leak через pprof

curl http://localhost:6060/debug/pprof/goroutine?debug=2 | grep -A 5 "goroutine"
# Ищем сотни/тысячи goroutine с одинаковым стеком

runtime/trace: детальный timeline

import (
	"os"
	"runtime/trace"
)

func main() {
	f, _ := os.Create("trace.out")
	defer f.Close()
	trace.Start(f)
	defer trace.Stop()

	// ... ваш код
}
go tool trace trace.out
# Открывает веб-интерфейс: goroutine scheduling, GC pauses, syscall latency

Trace показывает:

  • Когда goroutine была preempted или заблокирована
  • GC паузы и их длительность
  • Latency network/syscall по каждой goroutine
  • Heap size timeline

pprof в бенчмарках (без запущенного сервера)

go test -bench=BenchmarkMyFunc -cpuprofile=cpu.pprof -memprofile=mem.pprof ./...
go tool pprof -http=:8080 cpu.pprof

Включение mutex и block профилей

import "runtime"

func init() {
	runtime.SetMutexProfileFraction(1)  // 1 = каждый lock
	runtime.SetBlockProfileRate(1)      // 1 = каждая блокировка
}

Подводные камни

  • pprof endpoint в production без auth: /debug/pprof открывает внутреннее состояние; закройте firewall-ом или basic auth.
  • SetMutexProfileFraction(1) в prod: профилирование каждого lock добавляет ~10% overhead; используйте fraction 100 или только при расследовании.
  • Heap профиль vs allocs: /heap показывает живые объекты, /allocs — все когда-либо созданные; для поиска утечки нужен heap.
  • runtime/trace с большой нагрузкой: файл trace растёт очень быстро; собирайте не более 5–10 секунд.
  • Flame graph требует graphviz: go tool pprof -web падает без dot; используйте -http=:8080 как альтернативу.
  • CPU профиль с sampling: pprof семплирует каждые 10ms; короткие функции могут не попасть в профиль — используйте бенчмарки с -cpuprofile.
  • Интерпретация cumulative vs flat: flat — время в самой функции, cum — включая вызываемые; оптимизируйте функцию с высоким flat.

Типичные ошибки

  • Отвечать определением без production-сценария.
  • Не называть runtime boundary, security boundary или failure mode.
  • Игнорировать версию API, observability и тестовую проверку.

Что проверяет интервьюер

  • Объясняет механизм своими словами и без выдуманных API.
  • Называет реальные риски, диагностику и критерий корректности.
  • Связывает ответ с текущей документацией и миграционными ограничениями.

Как вы знаете этот вопрос?

Проверить себя по теме Go →

Источники

  • https://go.dev/doc/modules/layout
  • https://go.dev/blog/package-names

Связанные темы

Gogo-productionrisk-analysistechnical-depth

Вакансии с этим навыком

Go вакансии
  • Product Manager (GORA) - Life & Leisure Service Development(LLSD)
  • Senior Software Engineer, Advertisement Optimization Group - Merchandising and Advertisement Department (MAD)
  • QA Manager - EC Expansion Development Department (ECEXD)
  • EC Design Lead (Web Director) - D2C Fulfillment Section, Commerce & Marketing Company (C&M)
  • AI Engineer - LLM Adoption Department (LLMAD)

Частые вопросы на собеседовании

  • Для каких задач Go (Golang) является сильным выбором, а где лучше честно выбрать другой язык?
  • Как писать unit-тесты в Go? Что такое пакет testing?
  • Что происходит при добавлении элементов за пределы ёмкости slice?
  • Как Go управляет пакетами и модулями? Что такое go.mod?