国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

無需調優的內存優化

2019-11-18 12:13:19
字體:
來源:轉載
供稿:網友

  內存治理系統經常被視為實現系統性能最優的一塊主要絆腳石,因此在過去的幾年里,java應用環境對高效執行內存調優的需求急劇增長。受此影響JVM供給商開始一哄而上提供配置內存的非凡選項。獲取最優內存性能——沒有中斷,最大限度地提高吞吐量——已經變得越來越復雜。除了迫切需要高效的調優功能之外,客戶也十分明確地提出了簡化操作的需求。
  解決問題的方法是以最小的開銷提供自調優和具備自適應性的運行時環境。目前,一些新技術在實現系統性能最優的同時,減少了調優的用戶操作復雜性。其中包括由應用程序決定Java堆的大小,動態適應的垃圾回收和智能壓縮。
  這篇文章討論了內存調優的復雜性,自調優內存系統的優勢,其中一些面向BEA WebLogic Jrockit研發的新特性,將來可能會在BEA WebLogic Jrockit運用。

內存調優 - 一個復雜的問題
  由于Java應用程序具有平臺獨立性以及多樣性的特點,我們不可能創建出一個性能最優的通用內存配置。因此,使JVM針對不同環境實現內存調優的能力已經變得越來越重要。
  一般來說,調優的目的就是通過調整JVM的某些特性以適應各個不同的應用系統,最終達到優化性能的目的。通常調整JVM到最優狀態需要耗費大量的時間。因此,JVM提供商已經為客戶提供了一些減少調優工作量的方法。
  常用的解決方法是為每個客戶提供所需的啟動選項。為了滿足每個客戶的需要,啟動項目的數目已經增加到一個不可預見的數量。這樣做的一個不利影響就是,客戶必須首先具備一些JVM的知識,才可以把握如何使用和組合這些選項。換句話說,假如一個客戶并不熟JVM的內部工作,那么對他來說這個解決方法將要耗費大量的時間。
  另一個解決方法就是通過專門的咨詢專家在站點提供調優服務。咨詢專家對于JVM的內部工作原理已經了解,他們所要做的就是,了解客戶系統以便設置調優選項保證性能最優。然而,咨詢專家了解客戶系統的需求可能也需要大量的時間,并且可能在與客戶溝通的過程中,由于涉及到一些客戶不愿透漏的敏感和重要信息而發生沖突。因此這個解決方案的開銷同樣很大。
  由于相對前幾年來,對性能高效和縮減開銷的需求越來越備受關注,沒有可調優功能的JVM無法良好運作,因此這樣的JVM已經不再被接受。然而現存的解決方案過于昂貴,時間開銷過大而且復雜性過高。我們需要一個新的廉價、快捷、簡便的解決方案。
目的仍然是在使系統在對于JVM運行的所有平臺上任何一個可能的應用程序始終保持性能最優。對于新的發展趨勢,您不再需要了解您的系統,相反,您所要做得就是信任JVM可以找到最優的配置。實現思想主要是創建一個JVM,它可以通過利用開銷較低的應用程序配置數據進行自調優,自動地適應每一個客戶應用程序。

自調優內存系統的優勢
  相對于手動調優來說,自調優內存系統不但減少了調優的時間,而且也減少了調優所需要的開銷。除了獲取與手動配置系統相當的性能之外,自調優的機制還可以處理一個應用程序環境所需要的各種改變。由于調優策略基于開銷較低的應用程序配置數據,因此一旦這些數據發生變化,比如,當一個應用程序需要變化,調優就會發生。因此,自調優內存系統動態改變參數,在任何時候都可以獲得更好的性能,而不再為滿足某個應用程序系統的系統內存需求而在某個點(啟動之前)對 JVM進行調優。
  自調優內存系統的優勢在于JVM在獲得,或者說改善整體性能的同時也保持了簡單的特性。而唯一的限制就是系統所引入的每個動態參數的實現已經變得越來越復雜。因此,如何進行內存調優以此優化系統性能,這個問題的責任已經回到了它本來該屬于的地方:內存系統開發者的辦公桌上,而不再成為需要客戶所承擔的花費,時間或者知識的負擔。

自適應的內存治理
  在JVM提供商中一個新的趨勢就是研究自調優的特性。BEA WebLogic Jrockit已經在探索和開發不同的自適應特性方面做了很多工作。不久將會推出一個新的自調優內存治理系統,在這個系統中采用了其中的一些新特性。

由應用環境決定Java堆的調整
  BEA WebLogic Jrockit實現的特性之一就是在運行時擴展和縮減Java堆。這一動態特性消除了通過明確設置啟動選項標志實現優化性能的需要:

-Xms [size] [gGmMkK] (initial heap size)
-Xmx [size] [gGmMkK] (maximum heap size)

  這也就意味著用戶不再需要充分了解他們應用程序系統的內存需求。相反地,他們可以相信JVM內存系統可以根據應用程序的需求調整堆大小??s減和擴展通常由堆的使用情況決定。這一特性的發展同時也需要考慮到其他應用程序的內存需求或者JVMs的運行以及應用程序的權限。假如內存的需求忽然增加,堆尺寸將動態增長。相反,假如內存需求減少,那么JVM可能會考慮減少Java 堆的尺寸。
  在一些系統中,應用程序可能會在某些特定的點上處于閑置狀態,對于這樣的系統考慮應用程序的權限是十分有用的。當權限較低的應用程序進入睡眠狀態時,Java 堆可能會暫時收縮,在可能的情況下為權限更高的應用程序提供更多的可用內存。

動態垃圾回收
  在運行時,更改垃圾回收機制是另一個已經實現的特性,利用這個特性可以增加BEA WebLogic JRockit內存治理系統的靈活性。某個垃圾回收策略對應用程序運行的某個階段來說是最優的,那么對于另外一個階段可能會有另一個機制是最優的。通過讓JVM決定在每個垃圾回收點上使用哪個垃圾回收機制,可以獲得更好的性能。通過使用這個自動配置垃圾回收器的特性可以實現在運行時動態改變垃圾回收策略,因此理論上不再需要用戶設置啟動選項的標志:

-Xgc: [gencon singlecon parallel]

  另一個可以增加垃圾回收動態特性的方法是自動化nursery治理。在某些情況下,某個nursery可能在一個應用程序的整個運行過程中都沒有用到。因此可以在需要時再將一個nuersery置為使能狀態以此進一步提高性能。用戶不再需要理解垃圾回收機制的內部工作原理就可以獲取最優的應用程序性能。
  由于這一特性仍處在實驗階段,用戶目前只能通過使用啟動選項標志實現適應性的垃圾回收系統。

-XgcPRio: [throughput pausetime]



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮滨县| 宁都县| 许昌县| 五莲县| 新丰县| 巴彦县| 福贡县| 乐亭县| 铜山县| 桂阳县| 安乡县| 社旗县| 吴江市| 宜兰县| 江口县| 安义县| 台州市| 古浪县| 尉氏县| 吉林省| 东台市| 德兴市| 阿拉善左旗| 高碑店市| 蒲江县| 晋宁县| 临城县| 凤城市| 颍上县| 沿河| 嘉义县| 双流县| 平舆县| 准格尔旗| 彰武县| 修水县| 泽库县| 稷山县| 嘉荫县| 临颍县| 达拉特旗|