Eso realmente depende de lo que lo estés comparando con 🙂
Esto es lo que Tobias Weltner, autor del libro Master-PowerShell (disponible de forma gratuita en http://PowerShell.com) tiene que decir sobre esto:
Streaming: ¿Procesamiento en tiempo real o modo de bloqueo?
Cuando combine varios comandos en una canalización, querrá comprender cuándo se procesará cada comando por separado: de forma consecutiva o al mismo tiempo. La tubería procesará los resultados en tiempo real, al menos cuando los comandos encadenados en la tubería admitan el procesamiento en tiempo real. Es por eso que hay dos modos de tubería:
- Modo secuencial (lento): en el modo secuencial, los comandos de canalización se ejecutan de uno en uno. Por lo tanto, los resultados del comando pasan al siguiente solo después de que el comando haya realizado su tarea por completo. Este modo es lento y ahorra memoria porque los resultados se devuelven solo después de que todos los comandos terminen su trabajo y la canalización tenga que almacenar los resultados completos de cada comando. El modo secuencial básicamente corresponde al concepto de variable que primero guarda el resultado de un comando en una variable antes de reenviarlo al siguiente comando.
- Modo de transmisión (rápido): el modo de transmisión procesa inmediatamente el resultado de cada comando. Cada resultado se pasa directamente al comando subsiguiente. Correrá a través de toda la tubería y se emitirá de inmediato. Este modo rápido ahorra memoria porque los resultados se emiten mientras los comandos de la tubería siguen realizando sus tareas, y solo un elemento recorre la tubería a la vez. La canalización no tiene que almacenar todos los resultados del comando, sino solo un resultado a la vez.
Una cosa que agregar, ya que el modo de transmisión hace que los objetos se muevan rápidamente a través de toda la tubería, se obtiene el primer resultado antes. Lo que en caso de que escribas una aplicación interactiva es realmente importante. Devolver 10 resultados después de 10 segundos se siente mucho más lento que devolver 10 resultados en un lapso de 10 segundos, es decir, un resultado por segundo.
- ¿Los anuncios afectan a los consumidores?
- ¿Qué es el cociente espiritual? ¿Cómo se relaciona con IQ y EQ?
- ¿Qué tan efectiva es la musicoterapia para reducir el dolor?
- ¿Cuál es la razón por la cual las preguntas relacionadas con la ingeniería quedan sin respuesta o tienen respuestas muy tardías, pero cuando se trata de comentar, nadie mira hacia atrás? ¿Representa esto la mentalidad de un ingeniero?
- ¿Cuáles son algunos ejemplos cotidianos de negligencia en la tasa base?
Pero en general no tienes que preocuparte por esto en PowerShell. Generalmente prefiero el código que es más fácil de leer que el código feo más eficiente. Eso es hasta que surgen graves problemas de rendimiento. Por supuesto, estos deben ser medibles al monitorear la cantidad de memoria consumida, el tiempo necesario para realizar la tarea, etc.