Go

Go Avançado

Internos do compilador, runtime, scheduler, cgo, pacote unsafe, assembly, build tags

20 perguntas de entrevista·
Senior
1

Qual ferramenta da toolchain do Go permite inspecionar o código assembly gerado pelo compilador?

Resposta

O comando go tool compile -S exibe o código assembly gerado pelo compilador Go. Esta ferramenta é essencial para entender as otimizações do compilador e analisar código crítico para o desempenho. Também é possível usar go build -gcflags=-S para obter o mesmo resultado durante uma compilação padrão.

2

Qual é a função principal do pacote unsafe em Go?

Resposta

O pacote unsafe permite contornar o sistema de tipos do Go para realizar operações de memória de baixo nível. Ele expõe funções como Pointer, Sizeof, Alignof e Offsetof que permitem manipular diretamente os endereços de memória. Seu uso é desencorajado, exceto em casos específicos como a interoperabilidade com código C ou otimizações críticas.

3

Como o scheduler do Go (GPM) organiza a execução das goroutines?

Resposta

O scheduler do Go usa o modelo GPM: G representa as goroutines, P os processadores lógicos (GOMAXPROCS) e M os threads do sistema. Cada P possui uma run queue local de goroutines. Quando um M está bloqueado em um syscall, o P pode ser desvinculado e associado a outro M para continuar a execução das goroutines. Esse design permite um agendamento eficiente com um mínimo de context switches.

4

O que é cgo e em qual contexto deve ser usado?

5

Qual diretiva permite compilar condicionalmente código de acordo com o OS ou a arquitetura de destino?

+17 perguntas de entrevista

Domine Go para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis