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
@SpringBootApplication
las anotaciones, el paquete atravesará las siguientes sub-categorías, puede afectar al rendimiento.
Por defecto, vamos a utilizar @SpringBootApplication
anotaciones 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
, @EnableAutoConfiguration
y @ComponentScan
el papel de tres notas es el mismo. Si lo hace, aportar comodidad a los desarrolladores, habrá un efecto triple:
- 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.
- Cargas algún caso más no deseados (frijoles).
- Aumentar el consumo de CPU.
Por las anteriores tres casos, que se puede quitar @SpringBootApplication
y @ComponentScan
dos anotaciones componente para desactivar la exploración automática, entonces tenemos bean
que 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
JVM
Pará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:
Afinación operación externa:
java -server -Xms32m -Xmx32m -jar springboot_v2.jar
3 Servlet
contenedor 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
:
3.2 Prueba
Crear grupos de hilos
cada solicitud 10000
Creación de petición HTTP:
prueba:
Crear informes agregados:
Prueba:
Haga clic en Ejecutar, ver el informe de la prueba
Nombre del servidor | primera ejecución | segunda pasada | tercera carrera | media |
---|---|---|---|---|
Gato | 4773 | 5194 | 5334.7 | 5100 |
Resaca | 6666 | 6373 | 6451 | 6496 |