Hoy tuve la tarea de mejorar el rendimiento de una página ASP clásica. Reescribir el código en ASP.NET en este momento no es una opción, así que asumí el desafío de exprimir cada onza de rendimiento que puedo obtener de la página.Consejos de rendimiento para asp clásico?
La página consiste en el "SELECCIONAR bla bla FROM bla" básico en un par de conjuntos de registros. Un ciclo while itera a través de esos conjuntos de registros y volcados <tr> <td> cadenas. Dentro del ciclo while hay un montón de condicionales y otras cosas. Hay 3 subrutinas que se llaman que usan variables globales (no variables locales pasadas como parámetros).
Así que nada realmente impactante ni nada. Antes de comenzar mi optimización, el ciclo tardó alrededor de 15 segundos en completarse. De los 15 segundos alrededor de 6 fueron tomados por la consulta SQL.
Después de cambiar algunas cosas, logré obtener alrededor de 7 segundos.
Las cosas que han cambiado en torno son:
En vez de hacer SELECT *, que seleccionan sólo las columnas que necesitaba. La consulta bajó a un promedio de 4 segundos. Es una consulta bastante pesada con vistas dentro de las vistas.
Eliminé todas las conmutaciones de contexto dentro del ciclo. Así que cambié cosas como <% = bla%> a Response.Write (bla).
Las 3 subrutinas se definieron como funciones, pero se usaron como sub (sin resultado). Así que cambié las funciones a subs. ¿Eso ayuda?
Después de hacer mis cambios He encontrado que la mayoría de las veces estaba ocupado por una de las subrutinas. No he tenido tiempo suficiente hoy para cambiar la subrutina, aunque sí se compone de cosas como:
- Funciones de fecha: DATEADD, DATEDIFF
- Funciones de matriz: Ubound (RRA) y el índice de referencia: arr (I)
- funciones de cadena: a la izquierda, medio, derecho, inferior, reemplazar
Con cada llamada de búsqueda, dicha subrutina se ejecuta alrededor de 1600 veces.
¿Alguien por ahí tiene alguna experiencia con la optimización de páginas asp clásicas? ¿Tienes algún buen consejo para la optimización? Lo que estoy buscando es la mejora del código dentro de una declaración do ... loop.
Soy un experimentado desarrollador de ASP.NET y sé bastante sobre la mejora del rendimiento en ASP.NET. El ASP clásico usa un "motor" diferente, por lo que me preguntaba si alguien tiene alguna idea de cómo mejorar el rendimiento del ASP clásico.
Gracias!
M
PS: Sí sé que ASP clásico utiliza VBScript
Es para una aplicación de planificación y la persona que la creó creó un ciclo de gran aliento que muestra la planificación de muchos registros para todo un mes (30 columnas y alrededor de 20 filas). – mghaoui