9 - [SpringBoot optimización del rendimiento]

Un paquete de optimización de barrido

paquete de inicio de barrido pertenece a optimizar, optimización se ejecuta

1.1 componentes automáticamente los problemas causados ​​por escaneo

Utilizar @SpringBootApplicationlas anotaciones, el paquete atravesará las siguientes sub-categorías, puede afectar al rendimiento.

Por defecto, vamos a utilizar @SpringBootApplicationanotaciones para obtener automáticamente la información de configuración de la aplicación, sino que también dará lugar a algunos efectos secundarios a la aplicación.

Después de usar esta anotación, los disparadores 自动配置(auto-configuración) y 组件扫描(escaneo componente), que con el uso de @Configuration, @EnableAutoConfigurationy @ComponentScanel papel de tres notas es el mismo. Si lo hace, aportar comodidad a los desarrolladores, habrá un efecto triple:

  1. El proyecto dará lugar a mayor tiempo de inicio. Cuando se inicia una aplicación de gran tamaño, o para hacer una gran cantidad de pruebas de integración se inicia la aplicación, el impacto será particularmente pronunciado.
  2. Cargas algún caso más no deseados (frijoles).
  3. Aumentar el consumo de CPU.

Por las anteriores tres casos, que se puede quitar @SpringBootApplicationy @ComponentScandos anotaciones componente para desactivar la exploración automática, entonces tenemos beanque ser configurado de forma explícita en:

// 移除 @SpringBootApplication and @ComponentScan, 用 @EnableAutoConfiguration 来替代
// @SpringBootApplication
@ComponentScan(basePackages = "com.snow")
@EnableAutoConfiguration
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}

2 SpringBoot JVMParámetro Ajuste

JVM parámetros de ajuste, que pertenecen a la optimización global

El tamaño de la memoria del servidor para establecer los parámetros de la pila.

  • -Xms: Ajuste el tamaño inicial de la pila de Java
  • -Xmx: Establecer el máximo tamaño de la pila de Java
    parámetros de ejemplar-XX:+PrintGCDetails -Xmx32M -Xms1M

Afinación proyecto local:
Aquí Insertar imagen Descripción

Afinación operación externa:

java -server -Xms32m -Xmx32m  -jar springboot_v2.jar

3 Servletcontenedor se convierteUndertow

paso 3.1

Por defecto, la primavera de arranque mediante el Tomcat incluido como un contenedor de servlets.

servidor web se puede cambiar a Contracorriente para mejorar el rendimiento de la aplicación.

Undertow es una, servicios flexibles de desarrollo de servidor web de alto rendimiento de Java, incluyendo el bloqueo de mecanismo basado en NIO y no bloqueante. Undertow es productos de código abierto de Red Hat, JBoss es el servidor Web predeterminado.

En primer lugar, eliminar la configuración de Tomcat depende de la información desde el interior:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 添加 Undertow -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

Inicio, encontramos el uso de Undertow:
Aquí Insertar imagen Descripción

3.2 Prueba

Crear grupos de hilos
Aquí Insertar imagen Descripción
cada solicitud 10000
Aquí Insertar imagen Descripción

Creación de petición HTTP:
Aquí Insertar imagen Descripción

prueba:
Aquí Insertar imagen Descripción

Crear informes agregados:
Aquí Insertar imagen Descripción

Prueba:
Haga clic en Ejecutar, ver el informe de la prueba
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Nombre del servidor primera ejecución segunda pasada tercera carrera media
Gato 4773 5194 5334.7 5100
Resaca 6666 6373 6451 6496
Publicados 663 artículos originales · ganado elogios 213 · vistas 130 000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_42112635/article/details/104878172
Recomendado
Clasificación