成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解決J2EE系統應用性能問題常用方法

開發 后端
J2EE系統應用性能是每個架構師和開發人員都關心的問題,本文對解決J2EE系統應用性能問題的常規方法做出介紹,希望對您有所幫助。
     在J2EE系統應用性能中,經常體現有下面更為基本的癥狀:

應用服務器資源的使用情況

JVM堆的使用情況

系統資源的使用情況

數據庫資源的使用情況

網絡活動

這些現象表明J2EE應用依賴很多外部資源,并且是運行在一個層次化的執行模式的環境中:

由于Java虛擬機和應用服務器掩蓋了操作系統和硬件的特性,所以在設計軟件系統時,架構工程師更應該深刻理解整個操作環境。

在設計軟件系統時,架構工程師應把性能和可擴展性放在首位,然后開始尋找容易解決的問題,反應時間緩慢通常的原因是訪問數據庫效率低和過多地調用遠程對象和方法。接下來,架構工程師可繼續尋找不明顯的原因,例如算法的累積影響和不必要的開銷。

現在市場上的各個J2EE應用服務器有很多配置項目。這里只簡單介紹一些常見的性能優化配置項目。

很多應用服務器都有一些與J2EE規范有關的操作系統配置項目或非標準的特性,這可以提高系統性能。應該化時間來理解這些性能配置。

Java虛擬機堆和垃圾回收設置

任何J2EE系統應用性能調整基礎都涉及到堆的大小和垃圾回收設置。(這里主要討論Sun HotSpor JVM).

堆可分為三代,年輕的(新的),年老的和持久的。Hotspot JVM的內存基本配置包括***堆大小,初始堆大小和年輕一代堆的大小。當配置***堆大小時可參考下面一些指導:

***大小應小于物理內存,避免虛存的頁面調度。

需要減去其他進程使用的內存

在負載測試時進行優化

注意不要將***堆大小設置得過大。堆越大,內存中保存的對象越多。內存中對象越多,回收過程時間越長。

配置初試堆大小的一般性策略包括:

將初始大小設置為***堆大小

將初始大小設置為***堆大小的1/4到1/2

對于年輕一代堆大小,Sun 推薦是設置為***堆大小的1/3。

也可以選擇不同的垃圾回收算法。首先是增量垃圾回收。該算法的意思是減少單個對象回收停頓時間,這樣的結果是整體回收性能的下降。該算法將相互引用的對象分組,然后嘗試按組回收。嘗試回收的部分越小,回收處理的時間往往會越少。

1.4.1版的HotSpot JVM增加了兩個垃圾回收算法:并行算法和并發算法。

在年輕一代堆中實現了并行算法。在多處理器的機器上,這種回收算法使用了多線程來提高性能。雖然這個算法會暫停所有的應用線程,但是由于利用了多個CPU使得回收時間非常快。在年輕一代堆中,該算法顯著地減少了回收帶來的停頓。

在年老一代堆中實現了并發算法。在應用中***限度地執行并發。回收過程分為4個階段,覆蓋了可回收對象的標記和清除操作。前兩個過程會暫停應用線程,后兩階段可與應用并發執行。并發垃圾回收算法的"***限度并發"特點可以使JVM利用更大的堆和多個CPU。因此應關注由于采用缺省的mark-compact(標記-壓縮)和stop-the-world(停頓所有處理)等垃圾回收算法所帶來的延遲和吞吐量問題。

推薦:構建高J2EE系統應用性能的五種核心策略>>

處理線程

J2EE應用服務器是多線程的應用。應用服務器的線程是一種資源池,處理請求和和應用服務器的內部功能等任務共享這些資源。

很多應用服務器允許為特定的任務或應用配置不同大小的線程池。通常需要增加這些線程池的大小以滿足應用負載的需要。

架構工程師應該避免將線程池大小設置過大,這是因為會增加上下文交換的次數,從而降低應用的性能。線程池的大小通常應該能***利用機器上的CPU,同時又不能使CPU過載。

EJB配置項目

在應用服務器中,很多不同類型的EJB是以資源池的方式實現的。通常這些池大小和初始Bean的數量會明顯影響應用的性能。

架構工程師應該避免將這些池大小設置的過大,這樣會導致不必要地消耗JVM和操作系統內存。另外,將初始Bean數量設置過高會使得應用服務器的啟動時間長的難以接受。

在應用服務器中,緩存很多不同類型的EJB。緩存大小和超時設置通常也會對應用性能帶來顯著影響。

架構工程師應該避免將緩寸大小設置過大,這同樣會不必要地消耗大量JVM和操作系統內存。此外,應避免設置過長的超時--例如當EJB不用時,仍被緩存---,這也會導致不必要地消耗大量內存。

數據庫配置項目

J2EE規范要求應用服務器廠商必須提供數據庫連接資源池功能。通常增加數據庫連接池的大小會提高性能。架構工程師應該考慮不同類型的SQL操作(例如事務型和批處理型)應使用不同的連接池。如果一個消息Bean執行批處理操作,那么應該為此另創建一個連接池,而不要與事務型操作使用同一個連接池。

很多J2EE應用服務器提供了Prepared Statement 的緩存功能。創建Prepared Statement是很耗費資源的。在事務型的J2EE應用中通常執行很多同樣的SQL語句,只是參數不同而已。所以在應用中應發揮數據庫配置項目的作用,盡量使用Prepared Statement。

【編輯推薦】

  1. Java內存泄漏的檢測和處理
  2. Java 理論與實踐: 用弱引用堵住內存泄漏
  3. Java初學者入門應該掌握的30個概念
  4. 基于Java的界面布局DSL的設計與實現
  5. Java對象的序列化和反序列化實踐
責任編輯:王觀 來源: 天極網
相關推薦

2009-06-26 14:13:38

OSCache

2015-04-28 13:41:12

JavaJ2EE中文問題

2009-06-22 17:05:41

Java EEJava企業應用

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-25 13:22:00

J2EE常用Jar包

2009-06-11 17:11:07

J2EE設計模式工廠模式

2009-06-23 08:06:46

J2EE體系架構J2EE模型J2EE設計模式

2009-06-22 17:10:51

J2EE中文問題Solaris

2011-05-16 14:07:58

J2EE

2009-06-10 14:10:23

J2EE學習J2EE是什么

2010-11-09 17:13:17

SQL Server中

2009-06-23 16:51:56

J2EE運行環境性能優化

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 16:25:43

J2EE架構架構

2009-06-16 11:14:00

Hibernate+SJ2EE應用開發

2009-06-22 17:34:40

J2EE架構

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE調用存儲過程

2009-06-22 11:50:00

J2EE Web應用快速開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产高清久久久久久久久 | 亚洲视频一区二区三区四区 | 在线观看欧美日韩视频 | 亚洲精品美女在线观看 | 精品亚洲一区二区三区四区五区高 | 日韩在线一区二区三区 | 精品国产精品 | 午夜播放器在线观看 | 国产精品久久久久久久久久三级 | 色播av| 中文字幕国产视频 | 黄a在线观看 | 国产精品久久久久久吹潮 | 亚洲成av人片在线观看 | 日本五月婷婷 | 日韩在线精品 | 男女久久久| 91国内视频在线 | 欧美伊人久久久久久久久影院 | 亚洲 欧美 另类 日韩 | 一区视频| 国产精品无码专区在线观看 | 亚洲精品日韩综合观看成人91 | 欧美一级电影免费观看 | 欧美日韩亚 | 久久久久久久久久久久久久国产 | 日韩中文字幕一区二区 | 少妇特黄a一区二区三区88av | 亚洲精品久久久一区二区三区 | av天空| 国产精品亚洲一区 | 国产精品美女 | 先锋资源在线 | 九色视频网站 | 久久精品国产一区二区电影 | av手机在线免费观看 | 精品国产乱码久久久久久图片 | 国产精品激情小视频 | 国产男女视频网站 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲精品一 |