iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0

使用Spring Boot開發時,優化性能可以提升用戶體驗以及系統穩定。此篇將從資料庫、HTTP響應等方面來優化。

優化DB查詢

最常導致性能降低的動作就是資料庫查詢,因此,在使用上可留意以下技巧:

  • 使用索引,減少查詢時間。
  • 避免N+1,使用@OneToMany(fetch = FetchType.LAZY)避免不必要的資料表連結。
  • 善用分頁查詢,避免一次查取大量資料。

GZIP

HTTP響應可採用壓縮方式(GZIP)來降低網路傳輸時間,特別是傳輸大量資料或是JSON格式時:

使用GZIP壓縮需在application.properties設定:

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/plain
server.compression.min-response-size=1024

Cache

使用Cache(快取)可以降低查詢或重複計算的次數,進而提高系統性能。常用像是Redis或Ehcache,可將查詢結果快取到記憶體中,加快讀取速度。

Asynchronous Programming

非即時的處理流程,例如寄送通知、資料分析等,可使用異步處理,減輕主線程負擔,避免耗時。
使用@Async註解,可以將長時間的操作移到背景執行:

@Async
public void sendNotification() {
    // 寄送通知
}

Lazy Loadin

並非一開始每個Bean都需要初始化,每次初始化都會耗費記憶體以及CUP資源,因此,可以使用Lazy Loadin懶加載延後 Bean初始化:

@Configuration
public class AppConfig {
    @Bean
    @Lazy
    public MyService myService() {
        return new MyService();
    }
}

減少日誌輸出

過於詳細的日誌會降低應用程式性能,因此,選擇適當的日誌級別,可以避免性能浪浪費。

透過這些性能優化技巧,可以提升Spring Boot應用的穩定性和響應速度。


上一篇
從單元測試到集成測試
下一篇
太爽!等了一年終於挑戰成功!三十天!!
系列文
從卡關到通關的Spring Boot 腦內風暴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言