Estoy trabajando en un proyecto de prueba con la siguiente estructura:
project │ └─── jrns │ │ journeys_1.js │ │ journeys_2.js | | Journeys.js │ └─── Test Suites │ suite1.js │ suite2.jsCada archivo journeys_x contiene algunos viajes de usuario escritos como funciones, y el propósito del archivo Journeys es actuar como un centro de todos los viajes. Journeys.js se parece a esto:
import {journey_1_1, journey_1_2} from './journeys_1'; export {journey_1_1, journey_1_2}; import {journey_2_1, journey_2_2} from './journeys_2'; export {journey_2_1, journey_2_2};El propósito de crear ese concentrador es facilitar la importación en los conjuntos de pruebas:
import * as jrns from '../jrns/Journeys'; jrns.journey_1_2();Mi pregunta es la siguiente: ¿importar todo de esta manera en los archivos de las suites de prueba afecta el rendimiento ya que no todos los viajes se utilizan realmente dentro de cada archivo de la suite de pruebas? Además, si en journeys_1.js, por ejemplo, necesitaba acceder a un viaje almacenado en journey_2, por ejemplo, accedería a él a través del mismo mecanismo de importación.
import * as jrns from './Journeys'; jrns.journey_2_2();afectar el rendimiento?
El rendimiento puede tener una serie de dimensiones, es decir, el rendimiento del tiempo de ejecución, la complejidad de la memoria, etc. Para este tipo de cosas, es posible que pueda compararlo, pero es posible que solo tenga un impacto significativo a cierta escala. En este caso, sin conocer el número de importaciones, es probable que sea imposible decir que tendrá un efecto significativo. Cualquier importación adicional cuesta algo de tiempo de ejecución o espacio de memoria, claro, pero si eso importa es otra cuestión.
Para obtener una respuesta sobre si esto es importante, podría considerar si el proyecto está a escala (se ejecutarán algunos miles de pruebas), con qué frecuencia se ejecuta este conjunto de pruebas (en confirmación, en relaciones públicas, etc.) y si es se ejecuta en máquinas locales frente a un sistema CI basado en la nube. Si su proyecto no está a escala y es posible que no lo esté durante mucho tiempo, o si se ejecuta con poca frecuencia, o si se ejecuta en un sistema CI, la pequeña diferencia en el rendimiento del tiempo de ejecución probablemente no tenga un efecto observable/significativo.