día93-prueba de esfuerzo de rendimiento-optimización-prueba de rendimiento de optimización simple (ajustar el nivel de registro, abrir la plantilla de hoja de tomillo, agregar índice)

Ahora, la prueba de presión para visitar la página de inicio por sí sola no pasa por la solicitud de middleware

1. Prueba de presión para obtener la clasificación de primer nivel

Aún agregue el grupo de subprocesos como antes, agregue la solicitud http

Después de funcionar de manera estable durante un período de tiempo, vea el informe agregado

Complete el formulario basado en el informe agregado

Abra jvisualvm y descubrió que el gc menor es muy frecuente debido a la pequeña memoria de Eden Park, lo que afecta en gran medida la eficiencia.

2. Prueba de presión para obtener todos los datos de clasificación de tres niveles

Agregar solicitud http

Ver informe agregado

Complete el formulario, el tiempo de respuesta aquí es un poco indignante, el tiempo de respuesta es una referencia, depende principalmente del rendimiento, si usa otra máquina para probar la presión, los datos del resultado serán estándar, aquí es solo como referencia para encontrar el problema.

3. Prueba de presión para obtener todos los contenidos de la página de inicio (además de la clasificación de primer nivel, también incluye los recursos estáticos de la página)

Bajo la siguiente configuración en avanzado

Agregue una solicitud http, lo mismo que la clasificación de primer nivel de las pruebas de estrés

Ver informe agregado

Rellenar el formulario

4. Piense en el plan de optimización

En el artículo anterior, puede ver claramente el impacto del middleware en el rendimiento. Ahora enumero los puntos que causan la pérdida de rendimiento que he aprendido durante tanto tiempo bajo la prueba de presión.

(1) Middleware: cuanto más middleware, mayor es la pérdida de rendimiento, que se desperdicia en la interacción de la red

(2) db: No hace falta decir esto

(3) tymeleaf: la velocidad de renderizado de la plantilla

(4) Recursos estáticos: los recursos estáticos todavía se colocan en el proyecto y también se debe enviar una solicitud a tomcat para obtener

5. Práctica

(1) la caché de plantilla tymeleaf está activada

El almacenamiento en caché de la plantilla tymeleaf se cerró anteriormente, ahora está abierto

No adquiera recursos estáticos

Prueba nuevamente

En comparación con antes, el rendimiento ha aumentado en docenas

Antes eran más de 230, ahora son alrededor de 290

(2) Optimización de la base de datos

Ajustar el nivel de registro, agregar índice

Cada consulta de base de datos anterior se imprimirá, es decir, local, coloque el entorno y cámbielo al nivel de error.

Después de cambiar

Para agregar un índice, usamos el campo parent_cid para consultar la clasificación de primer nivel

Agregar tiempo de consulta de cálculo

    @Override
    public List<CategoryEntity> findCatelog1s() {
        long l = System.currentTimeMillis();
        List<CategoryEntity> categoryEntities = this.list(new QueryWrapper<CategoryEntity>().eq("parent_cid", 0));
        System.out.println("消耗时间:"+(System.currentTimeMillis()-l));
        return categoryEntities;
    }

Agregar índice

Antes de agregar un índice

Después de agregar el índice, todavía es mucho más rápido en promedio.

 

6. Prueba de presión optimizada

Abrí el caché tymeleaf anterior, ajusté el nivel de registro al error y agregué el índice, y luego volví a probar la solicitud anterior.

Clasificación de primera clase

Clasificación de tres niveles

Datos completos (clasificación de primer nivel + recursos estáticos)

Rellenar el formulario

Se encuentra que además de la adquisición de la cantidad total de datos, se ha mejorado significativamente el rendimiento de otras solicitudes, razón por la cual, la solicitud de recursos estáticos sigue siendo a través de tomcat

Esto implica la separación de nginx dinámico y estático en el próximo artículo.

 

 

 

Supongo que te gusta

Origin blog.csdn.net/JavaCoder_juejue/article/details/113591070
Recomendado
Clasificación