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

AIX環(huán)境下的Java性能調(diào)優(yōu)

運維 服務(wù)器運維 其他OS
本文介紹了什么是Java,AIX下的Java版本,Java的性能準(zhǔn)則,AIX提供的監(jiān)視Java的工具,以及如何在AIX用戶環(huán)境下進(jìn)行Java應(yīng)用程序性能調(diào)優(yōu)。

 1、什么是Java

  Java 是一種面向?qū)ο蟮木幊陶Z言。它以 C++ 為模型,被設(shè)計成小的、簡單的、在源和二進(jìn)制級別跨平臺的可移植的語言,Java 程序(applets 和應(yīng)用程序)可以運行于任何已經(jīng)安裝了 Java 虛擬機(JVM)的機器上。Java 相對其它計算機語言有顯著的優(yōu)勢,適合于任何編程任務(wù),Java 有以下優(yōu)勢:

  Java 是獨立于平臺的:Java 最顯著的一個優(yōu)勢就是它輕易從一臺計算機系統(tǒng)移動到另一臺的能力。對于任何Web軟件至關(guān)重要的就是在許多不同系統(tǒng)上運行同一個程序的能力, Java 成功之處在于在源和二進(jìn)制級別能夠獨立于平臺。

  Java 是面向?qū)ο蟮?Java 的另外一個優(yōu)點在于利用面向?qū)ο蟮姆椒ā_@允許你創(chuàng)建模塊化程序和可重用代碼。
  Java 容易學(xué)習(xí):Java 被設(shè)計成容易使用的語言,因此它更易于寫、編譯、調(diào)試以及學(xué)習(xí)。
  Java 是電子商務(wù)的解決方案: 由于 Java 的健壯性、使用方便、跨平臺的能力和安全性特點,它已成為了提供世界范圍內(nèi)因特網(wǎng)解決方案的選擇語言。

  2、AIX環(huán)境下的Java版本

  目前,AIX操作系統(tǒng)可以支持多個Java版本,可以在一個操作系統(tǒng)下同時安裝多個Java版本,應(yīng)用需要哪個版本時,可設(shè)置PATH路徑到此版本所在的目錄。以下是AIX可支持的Java版本信息:

  Java 1.1.8
  Java 1.2.2
  Java 1.3.0
  Java 1.3.1 32bit
  Java 1.3.1 64bit
  Java 1.4 32bit
  Java 1.4 64bit

  從性能來看,盡量使用高版本的AIX和高版本的Java,并且安裝最新的操作系統(tǒng)和Java補丁包。當(dāng)需要超過2GB的Java 堆時,需要使用64bit的Java。在AIX環(huán)境下,Java是免費使用的,可以從下列網(wǎng)址下載Java軟件:

  http://www6.software.ibm.com/dl/dka/dka-p
  從下列網(wǎng)址下載AIX操作系統(tǒng)和Java的補丁包:
  http://techsupport.services.ibm.com/server/fixes.

  3、Java 性能準(zhǔn)則

  在編寫Java應(yīng)用程序時,以下是基本的準(zhǔn)則:
  使用字符串緩沖區(qū)而不是字符串連接,當(dāng)進(jìn)行連續(xù)字符串操作時要避免不必要地創(chuàng)建那些最終必須經(jīng)過垃圾回收的對象。
  避免連續(xù)寫入 Java 控制臺以減少字符串操作、文本格式化以及輸出的花費。
  必要時通過使用變量的原語類型來避免對象創(chuàng)建和操作的花費。
  經(jīng)常高速緩存用過的對象以減少必須的垃圾回收數(shù)量,并且避免重復(fù)創(chuàng)建對象的需求。
  盡可能分組本地操作以減少 Java 本地接口(JNI)的調(diào)用。
  只有在必要時再使用同步方法,以此限制在 JVM 和操作系統(tǒng)中的多任務(wù)。
  除非必要避免調(diào)用垃圾回收器。如果您必須調(diào)用它,只有在空閑時間或一些非關(guān)鍵階段再這樣做。
  可能時使用整型而不是長整型,因為 32 位操作快于 64 位。
  可能時申明方法為 final。JVM 處理 final 的方法較好。
  當(dāng)創(chuàng)建常量時為了減少變量需要初始化的次數(shù),使用關(guān)鍵字 static final。
  避免不必要的“casts”和“instanceof”引用,因為在 Java 中銷毀操作不是在編譯時而是在運行時執(zhí)行的。
  當(dāng)數(shù)組可以滿足要求時盡可能避免使用向量。
  從向量末端添加和刪除項以得到較高性能。
  使用 -O 選項編譯 Java 文件。
  避免在循環(huán)中分配對象。
  使用緩沖區(qū) I/O 并調(diào)優(yōu)緩沖區(qū)大小。
  使用連接池和準(zhǔn)備緩存聲明進(jìn)行數(shù)據(jù)庫訪問。
  使用連接池連接到數(shù)據(jù)庫并重用連接而不是重復(fù)打開和關(guān)閉連接。
  最大化線程生存期并最小化線程創(chuàng)建和銷毀循環(huán)。
  最小化共享資源的爭用。
  最小化短生存期對象的創(chuàng)建。
  避免遠(yuǎn)程方法調(diào)用。
  使用回調(diào)以避免阻塞遠(yuǎn)程方法調(diào)用。
  避免創(chuàng)建只用來訪問一個方法的對象。
  盡可能保持同步方法處于循環(huán)外。
  在數(shù)據(jù)庫中以 Unicode 形式存儲字符串和字符數(shù)據(jù)。
  記錄 CLASSPATH 以便最常用的庫先出現(xiàn)。

#p#4、監(jiān)視 Java

  在AIX 操作系統(tǒng)中有許多工具可以用來監(jiān)視Java應(yīng)用程序的性能,以下是簡單的概述。
  vmstat
  這條命令提供了各種系統(tǒng)資源的信息。它報告了運行隊列以及等待隊列中內(nèi)核線程的統(tǒng)計信息、內(nèi)存使用、頁面調(diào)度空間、磁盤 I/O、中斷、系統(tǒng)調(diào)用、上下文切換以及 CPU 活動。
  iostat
  這條命令報告了詳細(xì)的磁盤 I/O 信息。
  topas
  這條命令報告了 CPU、網(wǎng)絡(luò)、磁盤 I/O、工作負(fù)載管理器和進(jìn)程活動。
  tprof -k -s -e -x "sleep 10"
  這條命令可被用來剖析應(yīng)用程序以查明任何可能影響性能的活動程序/方法。
  ps -mo 線程
  這條命令顯示了一個進(jìn)程或線程綁定于哪一個 CPU。
  java -verbose:gc
  這個選項可被用來檢查垃圾回收對您的應(yīng)用程序的沖擊。它報告了垃圾回收所花的總共時間,平均每一次垃圾回收花費時間,平均每一次垃圾回收收集的內(nèi)存以及平均每一次垃圾回收中的對象數(shù)。

  5、Java應(yīng)用程序性能調(diào)優(yōu)
  建議在運行Java應(yīng)用的AIX用戶環(huán)境下,設(shè)置以下環(huán)境變量。
  AIXTHREAD_SCOPE=S
  用 AIX 4.3.1 啟動,此變量缺省值為 P。這表示進(jìn)程寬度爭用作用域(M:N)。對于 Java 應(yīng)用程序,您應(yīng)該設(shè)置這個值為 S,它表示系統(tǒng)寬度爭用作用域(1:1)。
  AIXTHREAD_MUTEX_DEBUG=OFF
  用調(diào)試器為使用目的維持一個活動人工干預(yù)列表。
  AIXTHERAD_COND_DEBUG=OFF
  用調(diào)試器為使用目的維持一個條件變量列表。
  AIXTHREAD_RWLOCK_DEBUG=OFF
  pthreads 庫用調(diào)試器為使用目的維護(hù)一個包含活動互斥鎖定、條件變量以及讀/寫鎖定的列表。當(dāng)一個鎖定初始化,如果列表中沒有這一鎖定,它被加入到列表中。此列表以鏈表形式實現(xiàn),因此當(dāng)列表變大時通過搜索它來確定一個鎖定是否存在就包含了性能問題。問題是此列表被鎖定保護(hù),這一鎖定在搜索操作過程中一直保持。當(dāng)搜索進(jìn)行時其它對 pthread_mutex_init() 調(diào)用的子例程必須等待。為了優(yōu)化性能,您應(yīng)當(dāng)將此線程調(diào)試選項設(shè)置為 OFF。它們的缺省值為 ON 。
  SPINLOOPTIME=500
  spinloop 時間是一個進(jìn)程在阻塞前在一個繁忙的鎖定上可以循環(huán)的次數(shù)。這個值缺省設(shè)置為 40。如果 tprof 輸出表明 check_lock 例程具有高的 CPU 使用率,并且如果通常鎖定在短時間內(nèi)可用,您應(yīng)當(dāng)通過將值設(shè)置為 500 或更高來提高循環(huán)時間。

同樣,運行Java應(yīng)用的AIX用戶環(huán)境下,推薦以下設(shè)置:
  l ulimit -d 不限制
  l ulimit -m 不限制
  l ulimit -n 不限制
  l ulimit -s 不限制
  操作系統(tǒng)內(nèi)一定的環(huán)境參數(shù)和設(shè)置可以用來調(diào)優(yōu) Java 性能。同樣,許多調(diào)優(yōu)系統(tǒng)部件如 CPU、內(nèi)存、網(wǎng)絡(luò)、I/O 等等的技術(shù),可以提高 Java 性能。
  為了使得 Java 的性能和可伸縮性盡可能的好,您應(yīng)當(dāng)使用最新可用版本的操作系統(tǒng)和 Java,以及Just-In-Time(JIT)編譯器。
  與 Java 相關(guān)的最普通的性能問題與垃圾回收機制有關(guān)。如果 Java 堆太大,則堆將必須駐留在主內(nèi)存外。這將導(dǎo)致頁面調(diào)度活動增加,它將影響 Java 性能。同樣,一個大的堆可能花很多秒去填充。這意味著,盡管垃圾回收活動不頻繁,但與垃圾回收相聯(lián)系的暫停次數(shù)將增加。為了調(diào)優(yōu) Java 虛擬機(JVM)的堆,使用 java 命令加選項 -ms 或 -mx。使用垃圾回收統(tǒng)計信息來幫助決定最佳設(shè)置。

責(zé)任編輯:張玉 來源: Linux聯(lián)盟
相關(guān)推薦

2011-03-10 14:40:54

LAMPMysql

2017-07-21 08:55:13

TomcatJVM容器

2012-06-20 11:05:47

性能調(diào)優(yōu)攻略

2017-07-04 13:02:02

Linux系統(tǒng)性能調(diào)優(yōu)工具

2012-02-29 09:20:08

ibmdw

2021-03-04 08:39:21

SparkRDD調(diào)優(yōu)

2022-09-14 22:58:58

Push 推薦Java 開發(fā)vivo

2020-11-30 11:40:35

NginxLinux性能調(diào)優(yōu)

2011-11-14 10:28:23

2023-08-16 11:39:19

高并發(fā)調(diào)優(yōu)

2011-05-27 10:35:05

PerfLinux系統(tǒng)性能

2011-05-20 15:02:01

Oracle性能調(diào)優(yōu)

2023-11-23 09:26:50

Java調(diào)優(yōu)

2011-03-14 13:07:22

LAMPApache調(diào)優(yōu)

2011-03-14 13:38:40

LAMPApache調(diào)優(yōu)

2017-11-17 08:56:59

Java性能優(yōu)化技巧

2014-12-01 11:30:06

PostgreSQL

2011-03-18 11:21:48

2016-03-25 09:59:38

性能調(diào)優(yōu)LinuxMySQL

2021-11-07 23:49:19

SQL數(shù)據(jù)庫工具
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成年网站在线观看 | 欧美日本一区二区 | 久久精品国产一区老色匹 | 黄频视频 | 91精品国产欧美一区二区 | 国产日产久久高清欧美一区 | 免费观看一区二区三区毛片 | 中文字幕亚洲视频 | 欧美亚洲在线 | av一二三区 | 日韩一二区在线观看 | 97免费视频在线观看 | 国产精品久久久久无码av | 精品国产伦一区二区三区观看方式 | 免费毛片网站 | 国产真实乱全部视频 | 天天操夜夜骑 | 黄色毛片大全 | 免费午夜视频 | 男女羞羞视频在线看 | 色婷婷影院 | 日本一区二区电影 | 国产精品欧美一区二区 | 成人国产精品久久 | 精品视频在线观看 | 亚洲最大av网站 | 国产精品99久久久久久久久久久久 | 久久y| 色婷婷综合网 | 久久久久91 | 国产精品永久 | 狠狠操狠狠操 | 视频二区 | 在线播放国产一区二区三区 | 北条麻妃一区二区三区在线观看 | 日日噜噜噜夜夜爽爽狠狠视频97 | 精品啪啪 | 亚洲精品一区在线 | 日韩成人在线观看 | www久久久| 国产一区免费 |