Sobes.tech
Junior — Middle

¿En qué casos las llamadas a las llamadas del sistema funcionan más rápido: en procesos de PostgreSQL o en goroutines dentro de la aplicación?

sobes.tech AI

Respuesta de la IA

Las llamadas al sistema (syscalls) se ejecutan por sí mismas en el núcleo del sistema operativo y tienen un costo aproximadamente igual independientemente del contexto desde el que se llamen. Sin embargo, las diferencias en el rendimiento pueden surgir debido a la arquitectura de la aplicación.

  • En PostgreSQL, cada consulta de cliente se procesa en un proceso separado. La llamada al sistema desde un proceso de PostgreSQL es una transición directa al núcleo.
  • En Go, las goroutines son hilos ligeros que se planifican dentro de uno o varios hilos del sistema. La llamada al sistema desde una goroutine en realidad ocurre desde el hilo del sistema en el que se ejecuta.

La velocidad de la llamada al sistema depende de qué tan rápido la aplicación puede cambiar entre contextos y gestionar los hilos.

Conclusión:

  • Las llamadas al sistema desde procesos de PostgreSQL generalmente no tienen una sobrecarga adicional relacionada con el planificador, ya que el proceso es un contexto separado.
  • En Go, las goroutines pueden cambiar de tarea más rápidamente, pero la llamada al sistema aún se realiza en un hilo del sistema.

Por lo tanto, las llamadas al sistema desde procesos de PostgreSQL y desde goroutines en Go son aproximadamente comparables en velocidad. Sin embargo, en Go, se puede gestionar de manera más eficiente un gran número de operaciones paralelas sin crear múltiples procesos, lo que ofrece una ventaja en escalabilidad, pero no en la velocidad de una llamada al sistema individual.