목차
二、创建扫描索引
3. jdk17 업그레이드
운영 및 유지보수 안전 운영 및 유지 관리 팀에서는 나에게 SpringBoot 시작 속도를 최적화하라고 요청했고 이것이 바로 내가 한 일입니다!

운영 및 유지 관리 팀에서는 나에게 SpringBoot 시작 속도를 최적화하라고 요청했고 이것이 바로 내가 한 일입니다!

Jun 08, 2023 pm 06:52 PM
메모리 운영 및 유지보수

Spring Boot는 의심할 여지 없이 Java 백엔드 개발을 위한 최고의 프레임워크입니다. Spring Boot를 기반으로 하며 완전한 도구 체인과 다양한 스타터를 갖추고 있습니다. 일상적인 비즈니스 개발을 위해서는 바퀴가 완성되었다고 말할 수 있습니다.

그러나 마이크로서비스와 클라우드 네이티브 시대의 인기로 인해 Spring Boot 애플리케이션은 몇 가지 문제를 노출했으며, 그보다 더 두드러진 문제는 다음과 같습니다. 메모리

  • 클라우드 네이티브 애플리케이션은 시작 속도에 대한 요구 사항이 상대적으로 높습니다. 수평적 확장이 필요한 경우 이러한 새 인스턴스는 가능한 한 빨리 새 요청을 처리할 수 있을 만큼 짧은 시간 내에 시작되어야 합니다.
  • 클라우드 네이티브 애플리케이션은 런타임 중에 사용하기 위해 가능한 한 적은 리소스가 필요합니다. 단일 인스턴스가 차지하는 리소스를 최대한 줄이면 동일한 비용으로 더 많은 액세스 요청을 지원할 수 있습니다.
  • 클라우드 네이티브 애플리케이션에는 더 작은 포장 크기가 필요합니다. 클라우드 네이티브 애플리케이션은 컨테이너 이미지 형태로 패키징됩니다. 애플리케이션 이미지의 크기가 클수록 필요한 저장 공간도 커지고, 이미지를 푸시하고 가져오는 데 시간이 더 오래 걸립니다.
  • 사실 대부분의 시작 시간은 Spring이 다양한 Bean을 로드해야 하기 때문에 시작 속도가 느려진다는 사실로 인해 발생한다는 것을 모두 알고 있습니다.
  • 1. Bean 초기화 지연
  • 일반적으로 , SpringBoot에는 데이터베이스 연결 설정, 초기 스레드 풀 생성 등과 같이 시간이 많이 걸리는 작업이 많이 있으므로 시작 속도를 최적화하기 위해 이러한 작업의 초기화를 지연할 수 있습니다. spring.main.lazy-initialization 속성은 Spring Boot 버전 2.2 이후에 도입되었습니다. true로 구성하면 모든 Bean이 느리게 초기화됩니다.
    spring:main:lazy-initialization: true
    로그인 후 복사
  • 로컬에서 지연된 초기화를 켜면 시작이 1~2초 더 빨라질 수 있습니다.


Environment

Configuration≒10.3s

(평균 10회) 시작 속도

springboot2+jdk1.8


Bean의 지연 초기화

≒8.63초

二、创建扫描索引

Spring5 之后提供了spring-context-indexer功能,可以通过在编译时创建一个静态候选列表来提高大型应用程序的启动性能。

先看官方的解释:

운영 및 유지 관리 팀에서는 나에게 SpringBoot 시작 속도를 최적화하라고 요청했고 이것이 바로 내가 한 일입니다!

在项目中使用了@Indexed之后,编译打包的时候会在项目中自动生成META-INT/spring.components文件。

当Spring应用上下文执行ComponentScan扫描时,META-INT/spring.components将会被CandidateComponentsIndexLoader 读取并加载,转换为CandidateComponentsIndex对象,这样的话@ComponentScan不在扫描指定的package,而是读取CandidateComponentsIndex对象,从而达到提升性能的目的.

我们只需要将依赖引入,然后在启动类上使用@Indexed注解即可。这样在程序编译打包之后会生成
META-INT/spring.components文件,当执行@ComponentScan扫描类时,会读取索引文件,提高扫描速度。

<dependency>	<groupid>org.springframework</groupid>	<artifactid>spring-context-indexer</artifactid>	<optional>true</optional></dependency>
로그인 후 복사
@Indexed@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
로그인 후 복사

운영 및 유지 관리 팀에서는 나에게 SpringBoot 시작 속도를 최적화하라고 요청했고 이것이 바로 내가 한 일입니다!

环境

配置

(十次平均值)启动速度

springboot2+jdk1.8


≈10.3s


+延迟初始化Bean

≈8.63s


+创建扫描索引

≈7.7s

기타 팁:

1. 클래스를 스캔할 때 @ComponentScan @SpringBootApplication의 범위를 줄이세요

2 Spring Boot의 JMX 모니터링을 끄고 spring.jmx.enabled=false

3을 설정하세요. noverify, 클래스를 확인하지 마세요.

4. 시작 시 로드할 필요가 없는 빈의 로딩을 지연하세요. 5. Spring Boot의 전역 지연 로딩을 사용하세요.

5. AOPQ 측면에 주석을 사용하지 마세요. 시작 시 스캔 7. 일부 엔드포인트 모니터링 기능 끄기

6. 프로젝트의 불필요한 jar 종속성을 제외

7. Swagger가 인터페이스를 스캔할 때 특정 경로 아래의 클래스만 스캔하도록 지정 10. Feign 스캔 클라이언트 인터페이스는 패키지 스캐닝 범위를 좁힙니다

이 시점에서 시작 속도가 가장 최적화되어 있다고 간주해야 하지만 여전히 대용량 메모리 사용량이 문제입니다

3. jdk17 업그레이드

물론 jdk도 이 분야에서 많은 노력을 기울였습니다:

대량 메모리 사용량은 주로 메모리 사용량으로 인해 발생합니다. 운영 체제는 앞으로 반환되지 않으며 점차 개선되고 있습니다.

  • G1 JDK12 이상이 지원됩니다
  • ZGC JDK13 이상 지원

Java 언어의 기능을 기반으로 하며 Spring Boot의 일부 구현 방법에서는 G1/ZGC의 사용하지 않는 메모리를 켜서 반환하더라도 이를 결정합니다. 운영 체제가 시간이 지남에 따라 Spring Boot의 메모리 사용량은 여전히 ​​Golang과 같은 컴파일 언어의 메모리 사용량보다 훨씬 큽니다.

그래서 Java가 클라우드 네이티브 시대의 문제를 해결하려는 경우 현재 솔루션은 Quarkus이든 Micronaut이든 기본적으로 GraalVM을 기반으로 합니다.

그럼 Spring Boot에도 비슷한 솔루션이 있나요? : spring-graalvm-native

4. SpringBoot3

업그레이드는 springBoo6/SpringBoot3의 매우 중요한 기능으로, SpringBoot 애플리케이션을 로컬 실행 가능 이미지 파일로 컴파일하는 것을 지원합니다. 시작 속도, 최대 성능 및 메모리 사용량 감소.

위 내용은 운영 및 유지 관리 팀에서는 나에게 SpringBoot 시작 속도를 최적화하라고 요청했고 이것이 바로 내가 한 일입니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

대용량 메모리 최적화, 컴퓨터가 16g/32g 메모리 속도로 업그레이드했는데 변화가 없다면 어떻게 해야 하나요? 대용량 메모리 최적화, 컴퓨터가 16g/32g 메모리 속도로 업그레이드했는데 변화가 없다면 어떻게 해야 하나요? Jun 18, 2024 pm 06:51 PM

기계식 하드 드라이브나 SATA 솔리드 스테이트 드라이브의 경우 소프트웨어 실행 속도의 증가를 느낄 수 있지만 NVME 하드 드라이브라면 느끼지 못할 수도 있습니다. 1. 레지스트리를 데스크탑으로 가져와 새 텍스트 문서를 생성하고, 다음 내용을 복사하여 붙여넣은 후 1.reg로 저장한 후 마우스 오른쪽 버튼을 클릭하여 병합하고 컴퓨터를 다시 시작합니다. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

Xiaomi Mi 14Pro의 메모리 사용량을 확인하는 방법은 무엇입니까? Xiaomi Mi 14Pro의 메모리 사용량을 확인하는 방법은 무엇입니까? Mar 18, 2024 pm 02:19 PM

최근 샤오미는 스타일리시한 디자인은 물론 내부 및 외부 블랙 기술까지 갖춘 강력한 고급 스마트폰 샤오미 14Pro를 출시했다. 이 전화기는 최고의 성능과 뛰어난 멀티태스킹 기능을 갖추고 있어 사용자가 빠르고 원활한 휴대폰 경험을 즐길 수 있습니다. 하지만 성능은 메모리에 의해서도 영향을 받습니다. 많은 사용자들이 Xiaomi 14Pro의 메모리 사용량을 확인하는 방법을 알고 싶어하므로 한번 살펴보겠습니다. Xiaomi Mi 14Pro의 메모리 사용량을 확인하는 방법은 무엇입니까? Xiaomi 14Pro의 메모리 사용량을 확인하는 방법을 소개합니다. Xiaomi 14Pro 휴대폰의 [설정]에서 [애플리케이션 관리] 버튼을 엽니다. 설치된 모든 앱 목록을 보려면 목록을 탐색하고 보려는 앱을 찾은 다음 클릭하여 앱 세부 정보 페이지로 들어갑니다. 신청 세부정보 페이지에서

컴퓨터에서 8g 메모리와 16g 메모리 사이에 큰 차이가 있나요? (컴퓨터 메모리 8g 또는 16g 선택) 컴퓨터에서 8g 메모리와 16g 메모리 사이에 큰 차이가 있나요? (컴퓨터 메모리 8g 또는 16g 선택) Mar 13, 2024 pm 06:10 PM

초보 사용자가 컴퓨터를 구입할 때 8g과 16g 컴퓨터 메모리의 차이점이 궁금할 것입니다. 8g 또는 16g을 선택해야 합니까? 이 문제에 대해 오늘 편집자가 자세히 설명해 드리겠습니다. 컴퓨터 메모리 8g과 16g 사이에 큰 차이가 있나요? 1. 일반 가족이나 일반 업무의 경우 8G 런닝 메모리가 요구 사항을 충족할 수 있으므로 사용 중에는 8g와 16g 사이에 큰 차이가 없습니다. 2. 게임 매니아가 사용하는 경우 현재 대규모 게임은 기본적으로 6g부터 시작하며, 8g가 최소 기준입니다. 현재 화면이 2k인 경우 해상도가 높아진다고 프레임 속도 성능이 높아지는 것은 아니므로 8g와 16g 사이에는 큰 차이가 없습니다. 3. 오디오 및 비디오 편집 사용자의 경우 8g와 16g 사이에는 분명한 차이가 있습니다.

소식통에 따르면 삼성전자와 SK하이닉스는 2026년 이후 적층형 모바일 메모리를 상용화할 것으로 보인다. 소식통에 따르면 삼성전자와 SK하이닉스는 2026년 이후 적층형 모바일 메모리를 상용화할 것으로 보인다. Sep 03, 2024 pm 02:15 PM

3일 홈페이지 보도에 따르면 국내 언론 에트뉴스는 어제(현지시간) 삼성전자와 SK하이닉스의 'HBM형' 적층구조 모바일 메모리 제품이 2026년 이후 상용화될 것이라고 보도했다. 소식통에 따르면 두 한국 메모리 거대 기업은 적층형 모바일 메모리를 미래 수익의 중요한 원천으로 여기고 'HBM형 메모리'를 스마트폰, 태블릿, 노트북으로 확장해 엔드사이드 AI에 전력을 공급할 계획이라고 전했다. 이 사이트의 이전 보도에 따르면 삼성전자 제품은 LPWide I/O 메모리라고 하며 SK하이닉스는 이 기술을 VFO라고 부른다. 두 회사는 팬아웃 패키징과 수직 채널을 결합하는 것과 거의 동일한 기술 경로를 사용했습니다. 삼성전자 LPWide I/O 메모리의 비트폭은 512이다.

마이크론 : HBM 메모리는 웨이퍼 용량의 3배 소비, 생산능력은 기본적으로 내년으로 예약 마이크론 : HBM 메모리는 웨이퍼 용량의 3배 소비, 생산능력은 기본적으로 내년으로 예약 Mar 22, 2024 pm 08:16 PM

21일 본 사이트의 소식에 따르면 마이크론은 분기별 재무보고서를 발표한 뒤 컨퍼런스콜을 가졌다. 컨퍼런스에서 Micron CEO Sanjay Mehrotra는 기존 메모리에 비해 HBM이 훨씬 더 많은 웨이퍼를 소비한다고 말했습니다. 마이크론은 동일한 노드에서 동일한 용량을 생산할 때 현재 가장 발전된 HBM3E 메모리는 표준 DDR5보다 3배 더 많은 웨이퍼를 소비하며 성능이 향상되고 패키징 복잡성이 심화됨에 따라 향후 HBM4 이 비율은 더욱 높아질 것으로 예상된다고 밝혔습니다. . 이 사이트의 이전 보고서를 참조하면 이러한 높은 비율은 부분적으로 HBM의 낮은 수율 때문입니다. HBM 메모리는 다층 DRAM 메모리 TSV 연결로 적층됩니다. 한 층에 문제가 있다는 것은 전체가 의미합니다.

삼성전자가 HBM4 메모리에 널리 사용될 것으로 예상되는 16단 하이브리드 본딩 적층 공정 기술 검증을 완료했다고 밝혔다. 삼성전자가 HBM4 메모리에 널리 사용될 것으로 예상되는 16단 하이브리드 본딩 적층 공정 기술 검증을 완료했다고 밝혔다. Apr 07, 2024 pm 09:19 PM

보고서에 따르면 삼성전자 김대우 상무는 2024년 한국마이크로전자패키징학회 연차총회에서 삼성전자가 16단 하이브리드 본딩 HBM 메모리 기술 검증을 완료할 것이라고 밝혔다. 해당 기술은 기술검증을 통과한 것으로 알려졌다. 보고서는 이번 기술 검증이 향후 몇 년간 메모리 시장 발전의 초석을 마련하게 될 것이라고 밝혔다. 김대우 사장은 삼성전자가 하이브리드 본딩 기술을 바탕으로 16단 적층 HBM3 메모리를 성공적으로 제조했다고 밝혔다. ▲이미지 출처 디일렉, 아래와 동일 하이브리드 본딩은 DRAM 메모리층 사이에 범프를 추가할 필요 없이 상하층 구리를 직접 연결하는 방식이다.

Lexar, Ares Wings of War DDR5 7600 16GB x2 메모리 키트 출시: 하이닉스 A-다이 입자, 1,299위안 Lexar, Ares Wings of War DDR5 7600 16GB x2 메모리 키트 출시: 하이닉스 A-다이 입자, 1,299위안 May 07, 2024 am 08:13 AM

5월 6일 이 웹사이트의 소식에 따르면 Lexar는 Ares Wings of War 시리즈 DDR57600CL36 오버클럭 메모리를 출시했습니다. 16GBx2 세트는 5월 7일 0시에 예약 판매가 가능하며 가격은 50위안입니다. 1,299위안. Lexar Wings of War 메모리는 Hynix A-die 메모리 칩을 사용하고 Intel XMP3.0을 지원하며 다음 두 가지 오버클러킹 사전 설정을 제공합니다. 7600MT/s: CL36-46-46-961.4V8000MT/s: CL38-48-49 -1001.45V 방열 측면에서는 이 메모리 세트에는 1.8mm 두께의 올 알루미늄 방열 조끼가 장착되어 있으며 PMIC 독점 열 전도성 실리콘 그리스 패드가 장착되어 있습니다. 메모리는 8개의 고휘도 LED 비드를 사용하고 13개의 RGB 조명 모드를 지원합니다.

설치된 메모리가 Windows 11에 표시되지 않음 설치된 메모리가 Windows 11에 표시되지 않음 Mar 10, 2024 am 09:31 AM

새 RAM을 설치했지만 Windows 컴퓨터에 표시되지 않는 경우 이 문서가 문제 해결에 도움이 될 것입니다. 일반적으로 RAM을 업그레이드하여 시스템 성능을 향상시킵니다. 그러나 시스템 성능은 CPU, SSD 등과 같은 다른 하드웨어에 따라 달라집니다. RAM을 업그레이드하면 게임 경험도 향상될 수 있습니다. 일부 사용자는 설치된 메모리가 Windows 11/10에 표시되지 않는 것을 발견했습니다. 이런 일이 발생하면 여기에 제공된 조언을 사용할 수 있습니다. 설치된 RAM이 Windows 11에 표시되지 않습니다. 설치된 RAM이 Windows 11/10 PC에 표시되지 않는 경우 다음 제안 사항이 도움이 될 것입니다. 설치된 메모리가 컴퓨터 마더보드와 호환됩니까? 바이오에서

See all articles