新聞資(zī)訊

關于Java EE性能幾點問題

1. Java EE 中(zhōng)間件環境規範不足


“沒有規矩,不成方圓”。第二個比較普遍的原因是 Java EE 中(zhōng)間件或者基礎架構不規範。在項目初始,新平台上面沒有制定合理的規範,導緻系統穩定性差。這會增加客戶成本,所以花時間去(qù)制定合理的 Java EE 中(zhōng)間件環境規範是必須的。這項工(gōng)作應與初始容量規劃叠代相結合。



2. Java 虛拟機垃圾回收過度由于 JVM 的内存空間過度消耗(Java 堆、本機堆等)而抛出的異常。


垃圾收集問題并不一(yī)定會表現爲一(yī)個 OOM 條件,過度的垃圾收集可以理解成是 JVM GC 線程在短時間裏進行輕微或超量收集集合數據而導緻的 JVM 暫停時間很長和性能下(xià)降。可能有以下(xià)幾個原因:與 JVM 的負載量和應用程序内存占用量相比,Java 堆可能選擇的太小(xiǎo)。JVM GC 策略使用不合理。應用程序靜态或動态内存占用量太大(dà),不适合在 32 位 JVM 上使用。JVM OldGen 随着時間推移,洩漏越來越嚴重,而 GC 在幾個小(xiǎo)時或者幾天後才發現。JVM PermGen 空間(隻有 HotSpot VM)或本機堆随着時間推移會洩露是一(yī)個非常普遍的問題;OOM 的錯誤往往是觀察一(yī)段時間後,應用程序進行動态調動。建議:觀察和深入理解 JVM 垃圾回收。啓動 GC,根據健康合理的評估來提供所有的數據。記住,GC 方面的相關問題不會在開(kāi)發中(zhōng)或者功能測試時發現,它需要在多用戶高負載的測試環境下(xià)發現。



3. 與外(wài)部系統集成過多或過少

     

導緻 Java EE 性能差的第四個原因是高分(fēn)布式系統,典型案例是電信 IT 環境。在這個環境中(zhōng),一(yī)個中(zhōng)間件領域(例如,服務總線)很少會做所有的工(gōng)作,而僅僅是把一(yī)些業務“委托”給其他部分(fēn),例如産品質量,客戶資(zī)料和訂單管理, 到其他 Java EE 中(zhōng)間件平台或遺留系統中(zhōng),如支持各種不同的負載類型和通信協議的大(dà)型機。    這樣的外(wài)部系統調用意味着客戶端的 Java EE 應用程序觸發創建或重用套接字鏈接從外(wài)部系統中(zhōng)讀寫數據。合肥網站建設公司根據業務流程的實施和實現可以配置成同步調用或異步調用。需要注意的是,響應時間會根據外(wài)部系統 的穩定狀況進行改變,所以通過适當的使用超時來保護 Java EE 應用程序和中(zhōng)間件也是非常重要的。



4. 特定應用程序性能問題下(xià)面關注的是比較嚴重的 Java EE 應用程序問題。


關于特定應用程序性能問題,總結了以下(xià)幾個點:

1.線程安全的代碼問題

2.通信 API 缺少超時設置

3.JDBC 或者關系型 API 資(zī)源管理問題

4.缺乏适當的數據緩存

5.數據緩存過度過多的日志(zhì)記錄。

 

希望本文能夠幫助您理解一(yī)些常見的性能問題和壓力點,