Pregunta de entrevista para Ingeniero de software

¿Cómo funciona la recolección de basura y cuándo se convierte en un problema?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Un recolector de basura encuentra los objetos que siguen siendo alcanzables desde raíces como la pila y las variables globales, y libera todo lo demás. La mayoría de los recolectores modernos son generacionales, apoyados en la observación de que casi todos los objetos mueren jóvenes, así que recolectan una guardería pequeña a menudo y la generación vieja rara vez. Se convierte en un problema cuando las pausas se comen tu presupuesto de latencia, cuando la reserva de memoria adelanta a la recolección, o cuando tienes una fuga por mantener referencias que se te olvidaron.

Por qué lo preguntan los entrevistadores

Los runtimes gestionados esconden la memoria hasta que dejan de hacerlo, y el entrevistador quiere saber si sabes manejar ese día. Comprueba que entiendes la alcanzabilidad y no el folclore del conteo de referencias, que sabes que la recolección generacional es la razón de que reservar objetos de vida corta sea barato, y que sabes nombrar los síntomas de presión de GC: pausas que suben, ocupación del heap creciendo después de cada recolección, throughput cayendo bajo carga.

Cómo estructurar tu respuesta

  • Explica la alcanzabilidad desde las raíces, no los conteos de referencias.
  • Describe la recolección generacional y por qué se sostiene la suposición.
  • Nombra los modos de fallo: pausas, tasa de reserva, fugas.
  • Di cómo lo diagnosticarías con herramientas reales.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

El modelo mental es la alcanzabilidad. El recolector empieza en las raíces, la pila, los registros y las variables globales, recorre todo lo alcanzable, y lo que nunca alcanzó es basura. La mayoría de los recolectores son generacionales porque la inmensa mayoría de los objetos mueren casi de inmediato, así que escaneas un espacio joven pequeño a menudo y tocas el viejo rara vez. Por eso reservar un objeto de vida corta es casi gratis, y por eso una caché de vida larga es lo caro. Se convierte en un problema de tres formas. Pausas, si una recolección que para el mundo cae dentro de tu presupuesto de p99. Tasa de reserva, cuando produces basura más rápido de lo que el recolector la libera y el throughput se hunde. Y fugas, que en un runtime gestionado siempre significan que algo sigue reteniendo una referencia, normalmente un mapa estático o un listener que nadie quitó. Cuando he perseguido esto empiezo por los logs de GC y miro la ocupación del heap después de cada recolección. Si esa línea sube a lo largo de horas es una fuga, y entonces toca un volcado de heap para encontrar quién la retiene.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cuál es la diferencia entre una fuga y simplemente usar mucha memoria?
  • ¿Cómo reducirías las reservas de memoria en un camino caliente?
  • ¿Cuándo ajustarías el tamaño del heap en vez del código?

Más preguntas para Ingeniero de software

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot