SpringBoot 啟動慢的解決辦法


項目集成了很多內容,有 700 多個類,IDEA 中啟動一次需要 70 秒,非常影響開發效率。

研究問題原因發現有以下幾種情況會導致啟動速度慢,優化后啟動只需 26 秒左右了:

1. 和網卡有關,禁用一些不用的網卡可以提高 2~3 秒,因為啟動時會根據 ip 地址獲取機器名,有的網卡獲取不到會等 1 秒超時才返回。

2. gradle 中如果依賴了 sleuth 會導致項目啟動非常慢,可以在開發環境禁用掉,通過系統變量控制,操作步驟:

  • 在系統環境變量中設置 IDEA_PROFILE=dev
  • 修改 build.gradle
    //有些包在開發環境可以不用加載,可縮短啟動時間
    if (System.getenv("IDEA_PROFILE") == 'dev') {
        println 'dev'
    } else {
        println('not dev')
        compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth', version: '1.3.3.RELEASE'
    }
  • 填加環境變量后,需要做一次 gradle clean
  • 然后重啟 IDEA,在 build 時看到下面紅框中的 dev 就對了

3. 如果用了 AOP 並且切入點使用了 @annotation 注解的切入方式,會導致系統啟動時對每個方法都判斷是否有對應注解,非常耗時

如果這些注解在開發環境作用不大,可通過 Profile 注解設置為只在生產和測試環境生效,或改用其他方式切入,不要用 @annotation 注解切入

4. 另外配置文件增加以下配置,關閉一些監控功能,可以快2秒

  endpoints:
    enabled: false  //關閉一些監控功能,可以快2秒


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM