
Go Avançado
Internos do compilador, runtime, scheduler, cgo, pacote unsafe, assembly, build tags
1Qual ferramenta da toolchain do Go permite inspecionar o código assembly gerado pelo compilador?
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.
2Qual é a função principal do pacote unsafe em Go?
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.
3Como o scheduler do Go (GPM) organiza a execução das goroutines?
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.
O que é cgo e em qual contexto deve ser usado?
Qual diretiva permite compilar condicionalmente código de acordo com o OS ou a arquitetura de destino?
+17 perguntas de entrevista
Outros temas de entrevista Go
Fundamentos de Go
Estruturas de dados em Go
Interfaces em Go
Tratamento de erros
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificação JSON
Database/SQL
Pacote context
Testing
Padrões de concorrência
Primitivas de sincronização
Frameworks web Go
Design de API REST
gRPC
Reflection
Gerenciamento de memória
Otimização de desempenho
Generics
Go Design Patterns
Microservices
Segurança e autenticação
Docker & Containerization
Kubernetes Basics
Desenvolvimento de CLI
Domine Go para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis