Go

Go Avanzado

Internos del compilador, runtime, scheduler, cgo, paquete unsafe, assembly, build tags

20 preguntas de entrevista·
Senior
1

¿Qué herramienta de la toolchain de Go permite inspeccionar el código assembly generado por el compilador?

Respuesta

El comando go tool compile -S muestra el código assembly generado por el compilador de Go. Esta herramienta es esencial para comprender las optimizaciones del compilador y analizar código crítico para el rendimiento. También es posible usar go build -gcflags=-S para obtener el mismo resultado durante una compilación estándar.

2

¿Cuál es la función principal del paquete unsafe en Go?

Respuesta

El paquete unsafe permite eludir el sistema de tipos de Go para realizar operaciones de memoria de bajo nivel. Expone funciones como Pointer, Sizeof, Alignof y Offsetof que permiten manipular directamente las direcciones de memoria. Su uso se desaconseja excepto en casos específicos como la interoperabilidad con código C o las optimizaciones críticas.

3

¿Cómo organiza el scheduler de Go (GPM) la ejecución de las goroutines?

Respuesta

El scheduler de Go usa el modelo GPM: G representa las goroutines, P los procesadores lógicos (GOMAXPROCS) y M los threads del sistema. Cada P tiene una run queue local de goroutines. Cuando un M se bloquea en un syscall, el P puede desvincularse y asociarse a otro M para continuar la ejecución de las goroutines. Este diseño permite una planificación eficiente con un mínimo de context switches.

4

¿Qué es cgo y en qué contexto debe usarse?

5

¿Qué directiva permite compilar condicionalmente código según el OS o la arquitectura de destino?

+17 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis