GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la sobrecarga de usar subcapas?

Las subcapas tienen sobrecarga.

En mi sistema, el costo mínimo de fork-exec (cuando ejecuta un programa desde el disco cuando el archivo no está frío) es aproximadamente 2ms y el costo mínimo de bifurcación es de aproximadamente 1ms .

Con subcapas, está hablando solo del costo de bifurcación, ya que ningún archivo necesita ser exec edición Si las subcapas se mantienen razonablemente bajas, 1ms es bastante insignificante en los programas orientados a humanos. Creo que los humanos no pueden notar nada que suceda más rápido que 50ms (y ese es el tiempo que tardan los intérpretes de lenguaje de secuencias de comandos modernos en comenzar (estoy hablando de python y rubí en rvm aquí) con el nodejs más nuevo ocupando alrededor de 100ms ).

Sin embargo, se suma con los bucles, y entonces es posible que desee reemplazar, por ejemplo, el bactick bastante común o $() patrón donde return algo de una función al imprimirlo en la salida estándar para que el shell principal se capture con bashisms como printf -v (o use un programa externo rápido para procesar todo el lote).

El paquete bash-completion evita específicamente este costo de subcapa al regresar a través de nombres de variables pasados ​​usando una técnica descrita en http://fvue.nl/wiki/Bash:_Passing_variables_by_reference

Comparando

time for((i=0;i<10000;i++)); do echo "$(echo hello)"; done >/dev/null 

con

time for((i=0;i<10000;i++)); do echo hello; done >/dev/null 

debería darle una buena estimación de lo que sus sistemas fork -ing sobrecarga es.


Linux
  1. Linux vs Unix:¿Cuál es la diferencia?

  2. ¿Qué es un Rolling Release Linux y cuál es el beneficio real de usarlo?

  3. ¿Detectar el sistema Init usando el shell?

  4. ¿El beneficio real de usar Uuids?

  5. ¿Cuál es la forma más sencilla de SSH usando Python?

Uso del archivo de configuración SSH

¿Qué es el Shell en Linux?

¿Cómo determinar qué está utilizando la mayor cantidad de espacio en disco en un servidor Linux?

¿Cómo averiguo qué está utilizando todo el espacio en mi partición /?

¿Qué impide que las distribuciones utilicen el último kernel de Linux?

¿Qué es el sistema de archivos NSFS?