GO Go  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Бенчмарки и профилирование

Разбирает устройство бенчмарков, профили CPU и памяти, аллокации и осторожную интерпретацию измерений в реальном сервисе. В тесте 30 вопросов, из них 18 требуют чтения кода, команд или диагностических фрагментов. Задания опираются на устойчивые правила современного Go; если поведение зависит от версии, это оговорено в самом вопросе.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 6 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 30
В разделе «Бенчмарки» показан конкретный случай. Как завершится показанный фрагмент при указанных входных данных?
GoБенчмарки: результат выполнения
// Фрагмент для трассировки.
package sample
import "testing"
var sink int
func BenchmarkSum(b *testing.B){for i:=0;i<b.N;i++{sink=i+i}}
Вопрос 2 из 30
Команда проверяет решение по теме «Бенчмарки». Что здесь следует изменить прежде всего?
GoБенчмарки: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package sample
import "testing"
var sink int
func BenchmarkSum(b *testing.B){for i:=0;i<b.N;i++{sink=i+i}}
Вопрос 3 из 30
Перед публикацией кода по теме «Бенчмарки» нужно уточнить контракт. Какое правило отделяет верный разбор от правдоподобной догадки?
GoБенчмарки: проверка контракта
// Определите правило Go, которое объясняет результат.
package sample
import "testing"
var sink int
func BenchmarkSum(b *testing.B){for i:=0;i<b.N;i++{sink=i+i}}
Вопрос 4 из 30
В рабочем примере по теме «Бенчмарки» важно отделить гарантию от догадки. Какой крайний случай обязан попасть в тесты?
Вопрос 5 из 30
Фрагмент относится к теме «Бенчмарки». Какой выбор лучше отражает баланс простоты и контроля?
Вопрос 6 из 30
Команда проверяет решение по теме «Профили pprof». Как изменится состояние программы после этого фрагмента?
BashПрофили pprof: результат выполнения
go test -bench=BenchmarkSum -cpuprofile=cpu.out ./...
go tool pprof cpu.out
Вопрос 7 из 30
Перед публикацией кода по теме «Профили pprof» нужно уточнить контракт. Какое замечание на ревью будет наиболее точным?
BashПрофили pprof: фрагмент на ревью
go test -bench=BenchmarkSum -cpuprofile=cpu.out ./...
go tool pprof cpu.out
# Задача: выбрать безопасную правку или способ проверки.
Вопрос 8 из 30
В рабочем примере по теме «Профили pprof» важно отделить гарантию от догадки. Какое правило важнее случайных деталей конкретного запуска?
BashПрофили pprof: проверка контракта
go test -bench=BenchmarkSum -cpuprofile=cpu.out ./...
go tool pprof cpu.out
# Требуется объяснить правило, а не только назвать команду.
Вопрос 9 из 30
Фрагмент относится к теме «Профили pprof». Где корректный фрагмент легко становится ошибочным?
Вопрос 10 из 30
На ревью разбирают тему «Профили pprof». Что учитывать при выборе этого приёма для публичного API?
Вопрос 11 из 30
Перед публикацией кода по теме «Аллокации» нужно уточнить контракт. Какой результат даст этот код на поддерживаемой реализации Go?
GoАллокации: результат выполнения
// Фрагмент для трассировки.
package main
import "strings"
func build(parts []string)string{var b strings.Builder;b.Grow(128);for _,p:=range parts{b.WriteString(p)};return b.String()}
func main(){}
Вопрос 12 из 30
В рабочем примере по теме «Аллокации» важно отделить гарантию от догадки. Что нужно поменять, чтобы граничный случай не превратился в сбой?
GoАллокации: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "strings"
func build(parts []string)string{var b strings.Builder;b.Grow(128);for _,p:=range parts{b.WriteString(p)};return b.String()}
func main(){}
Вопрос 13 из 30
Фрагмент относится к теме «Аллокации». Какое свойство конструкции определяет её поведение?
GoАллокации: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "strings"
func build(parts []string)string{var b strings.Builder;b.Grow(128);for _,p:=range parts{b.WriteString(p)};return b.String()}
func main(){}
Вопрос 14 из 30
На ревью разбирают тему «Аллокации». Что стоит проверить до переноса решения в общий компонент?
Вопрос 15 из 30
В разделе «Аллокации» показан конкретный случай. Как точнее всего описать пользу и цену этого решения?
Вопрос 16 из 30
В рабочем примере по теме «Интерпретация профиля» важно отделить гарантию от догадки. К какому результату приводит показанная конструкция?
ТекстИнтерпретация профиля: результат выполнения
(pprof) top
flat  flat%   sum%   cum   cum%
1.20s 40.0% 40.0% 1.20s 40.0% parse
0.10s  3.3% 43.3% 2.00s 66.7% handle
Вопрос 17 из 30
Фрагмент относится к теме «Интерпретация профиля». Какую правку стоит предложить на ревью, сохранив назначение кода?
ТекстИнтерпретация профиля: фрагмент на ревью
(pprof) top
flat  flat%   sum%   cum   cum%
1.20s 40.0% 40.0% 1.20s 40.0% parse
0.10s  3.3% 43.3% 2.00s 66.7% handle

Контекст проверки: Интерпретация профиля.
Вопрос 18 из 30
На ревью разбирают тему «Интерпретация профиля». На какой контракт языка или стандартной библиотеки здесь нужно опереться?
ТекстИнтерпретация профиля: проверка контракта
(pprof) top
flat  flat%   sum%   cum   cum%
1.20s 40.0% 40.0% 1.20s 40.0% parse
0.10s  3.3% 43.3% 2.00s 66.7% handle

Вопрос относится к теме: Интерпретация профиля.
Вопрос 19 из 30
В разделе «Интерпретация профиля» показан конкретный случай. Какое ограничение опаснее всего пропустить?
Вопрос 20 из 30
Команда проверяет решение по теме «Интерпретация профиля». Какой вывод о сопровождении решения наиболее взвешенный?
Вопрос 21 из 30
Фрагмент относится к теме «Тестирование и наблюдаемость». Как завершится показанный фрагмент при указанных входных данных?
BashТестирование и наблюдаемость: результат выполнения
go test -run=^$ -bench=. -count=10 > old.txt
go test -run=^$ -bench=. -count=10 > new.txt
benchstat old.txt new.txt
Вопрос 22 из 30
На ревью разбирают тему «Тестирование и наблюдаемость». Что здесь следует изменить прежде всего?
BashТестирование и наблюдаемость: фрагмент на ревью
go test -run=^$ -bench=. -count=10 > old.txt
go test -run=^$ -bench=. -count=10 > new.txt
benchstat old.txt new.txt
# Задача: выбрать безопасную правку или способ проверки.
Вопрос 23 из 30
В разделе «Тестирование и наблюдаемость» показан конкретный случай. Какое правило отделяет верный разбор от правдоподобной догадки?
BashТестирование и наблюдаемость: проверка контракта
go test -run=^$ -bench=. -count=10 > old.txt
go test -run=^$ -bench=. -count=10 > new.txt
benchstat old.txt new.txt
# Требуется объяснить правило, а не только назвать команду.
Вопрос 24 из 30
Команда проверяет решение по теме «Тестирование и наблюдаемость». Какой крайний случай обязан попасть в тесты?
Вопрос 25 из 30
Перед публикацией кода по теме «Тестирование и наблюдаемость» нужно уточнить контракт. Какой выбор лучше отражает баланс простоты и контроля?
Вопрос 26 из 30
На ревью разбирают тему «Конкурентность и эксплуатация». Как изменится состояние программы после этого фрагмента?
BashКонкурентность и эксплуатация: результат выполнения
go test -run=^$ -bench=. -blockprofile=block.out -mutexprofile=mutex.out ./...
Вопрос 27 из 30
В разделе «Конкурентность и эксплуатация» показан конкретный случай. Какое замечание на ревью будет наиболее точным?
BashКонкурентность и эксплуатация: фрагмент на ревью
go test -run=^$ -bench=. -blockprofile=block.out -mutexprofile=mutex.out ./...
# Задача: выбрать безопасную правку или способ проверки.
Вопрос 28 из 30
Команда проверяет решение по теме «Конкурентность и эксплуатация». Какое правило важнее случайных деталей конкретного запуска?
BashКонкурентность и эксплуатация: проверка контракта
go test -run=^$ -bench=. -blockprofile=block.out -mutexprofile=mutex.out ./...
# Требуется объяснить правило, а не только назвать команду.
Вопрос 29 из 30
Перед публикацией кода по теме «Конкурентность и эксплуатация» нужно уточнить контракт. Где корректный фрагмент легко становится ошибочным?
Вопрос 30 из 30
В рабочем примере по теме «Конкурентность и эксплуатация» важно отделить гарантию от догадки. Что учитывать при выборе этого приёма для публичного API?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу