Como hemos comentado anteriormente, dentro de las ventajas y desventajas de ambos lenguajes está el tema de rendimiento de cada uno.
Si la diferencia fuera pequeña, sería una variable despreciable, salvo que el manejo de datos sea inmenso, tanto en número de registros como tablas relacionadas que se usan para personalizar emails, cloudpages, etc.
Finalmente os mostramos unos números. Estos carecerán de importancia si usas pocos datos; porque en muchos casos, y hoy en día, al ir a nichos más reducidos, esta cantidad de datos se limita. Pero en algunos clientes nuestros con enormes cantidades de datos es un factor a tener en cuenta cuando ambos lenguajes cumplen con el objetivo buscado.
¿Debemos usar un lenguaje u otro en función de su rendimiento?
Como veremos, y dadas las diferencias de rendimiento entre uno y otro, la respuesta si usas muchos datos puede ser SÍ.
El test realizado es muy básico pero concluyente, hemos utilizado tareas típicas de datos para analizar este rendimiento.
- Un bucle con impresión de texto en cada iteración
- Un bucle sin más, sin imprimir datos ni hacer ninguna otra operación
- Una recuperación de datos de una Data Extension y su impresión en una tabla (50 filas)
- Un bucle con una llamada GET a una página (5 peticiones)
- Y una prueba de hacer 500 inserts en una Data Extension con 6 campos
Los resultados son muy llamativos: la diferencia es muy grande en algunas tareas, en su mayoría en detrimento de SSJS (mala noticia para los que preferimos este lenguaje) y curiosamente la mayor diferencia es un bucle sencillísimo de imprimir un texto; pero en el resto también hay diferencias, solo gana si es un bucle sin texto, algo que tampoco es muy habitual (la verdad).
Aquí os dejamos la tabla de resultados:
COMPARATIVA DE TIEMPO DE EJECUCIÓN EN SEGUNDOS: AMPSCRIPT VERSUS SSJS | |||
Tipo de script | Ampscript | SSJS | Diferencial (%) |
Impresión en un bucle de 5000 iteraciones de un String | 0,016 | 0,708 | 4325% |
Bucle de 20000 iteraciones sin impresión | 0,06 | 0,032 | -47% |
Lookup e impresión de 50 filas de una Data Extension | 0,016 | 0,422 | 2538% |
HTTP get a una URL en un bucle 5 llamadas | 0,158 | 0,219 | 39% |
500 inserts de datos en una DE | 0,783 | 0,9496 | 21% |
Y aquí una tabla, representando la mayor o menor lentitud de un lenguaje versus el otro.
Esperamos que estos datos os den un poco de luz. A nosotros nos han ayudado a decidir en cada desarrollo, porque priorizábamos más de lo que debíamos SSJS y ahora tendremos más en cuenta a AMPSCRIPT en determinados trabajos.
Si te ha gustado este artículo, también te puede interesar:
- Desarrollo en Salesforce Marketing Cloud ¿Ampscript o SSJS?: Intro (Parte 1)
- Desarrollo en Salesforce Marketing Cloud ¿Ampscript o SSJS?: Comparativa (Parte 2)