預熱您的JVM –超快速生產服務器和IDE

幾個月前,我正在閱讀Java中的復雜事件處理以及實現低延遲的方法。 在我長達一個小時的研究結束時,我發現即使您的應用程序編寫正確并且您的方法主要在0(log n)的時間內運行,并且您正在使用某些前沿的硬件解決方案,但仍會花費一些時間。 VM在解釋字節碼期間。

從好的方面來說,Java被解釋了,它的字節碼是跨JVM兼容的,但是我們也知道,因此,我們注定會在某些地方丟失某些東西。 我們的JVM讀取解釋的字節碼并每次運行。 顯然,這需要時間。

但是考慮到我們友好的鄰居JIT編譯器(服務器或客戶端)會注意常用的方法,并且發現方法被調用了太多次時 ,它會將其編譯為本機代碼,而不是依賴JVM,因此它的性能還不錯。一直在字節碼上。

使用vm參數配置“太多次”的數字

<-XX:CompileThreshold

默認值為1500 。 一個自然的猜測是減少數量將意味著更多的方法更快地轉換為本地代碼,這意味著更快的應用程序,但事實并非如此。 相當低的數字將意味著服務器由于JIT編譯太多方法(畢竟可能很少經常使用)而花費的時間非常慢,并且由于本機代碼駐留在內存中,因此您的應用程序將榮獲“記憶殺手”獎,并以緩慢的痛苦死亡。 稍作谷歌搜索就可以發現100左右的數字還不錯。 同樣,這取決于您的應用程序以及使用模式和流量。

忘了提及,成為JIT本機編譯候選對象的最小編譯單元是一種方法。 不是一個障礙。 因此,長期使用脂肪的方法–祝您好運!

實際上,這種JIT編譯并非一go而就。 它有兩個整潔的階段:

1)每次調用方法時,其計數器都會增加1,并在達到閾值后不久,JIT會進行第一次編譯

2)第一次編譯后,計數器將重置為0,然后再次遞增。 在第二個周期中,當JIT達到閾值時,它將進行第二輪編譯 –這次具有更激進和令人敬畏的優化(對不起–無法在此處提供很多詳細信息)

如果您使用的是JDK 7,并且您的計算機在多核上運行(我不知道為什么不這樣做),則可以使用以下標志來加快本機編譯過程

-server -XX:+TieredCompilation

考慮到可用選項的數量,我不能聲稱自己是JVM調優的專家。 因此,如果您覺得有用或不正確,請留下您的評論。

別忘了分享!

參考:通過我們的JCG合作伙伴 Arun Manivannan的Rerun.me博客為您的JVM熱身-超快速生產服務器和IDE 。


翻譯自: https://www.javacodegeeks.com/2012/10/warming-up-your-jvm-superfast.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370895.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370895.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370895.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序APP(商超營銷類)經驗總結

項目介紹 這是一款主打門店營銷的小程序。包括首頁、門店、營銷、個人設置、登錄、數據統計展示、營銷設置等。 本來要獨立完成整個項目&#xff0c;包括前后端一套的&#xff0c;有些意外因素&#xff0c;項目臨時收尾&#xff08;說明&#xff1a;只完成了前端的部分&#…

excel不顯示0_Excel數字過長不能完整顯示?超長數字變為0

Excel中計算規則和限制設定數值精確度為15位&#xff01;超過15位后&#xff0c;數字會顯示為0excel數字超過15位&#xff0c;會顯示為0&#xff0c;超過10位&#xff0c;默認采用科學計數法顯示1、如何解決超長數字輸入&#xff0c;全部顯示問題&#xff1f;&#xff08;單元格…

Android天氣預報設計

——嵌入式軟件開發 名字功能模塊代碼行數備注謝燦輝Widget200桌面小程序李楊敏GPS定位&#xff0c;百度地圖API100-150獲取當前所在城市丁小芳城市選擇Activity&#xff0c;天氣API獲取天氣100-200包括數據庫交互本軟件是一個天氣類應用軟件&#xff0c;帶有widget&#xff0c…

linux vi后不保存退出,linux下退出VI的方法:不保存退出

當編輯完文件&#xff0c;準備退出Vi返回到shell時&#xff0c;可以使用以下幾種方法之一。在命令模式中&#xff0c;連按兩次大寫字母Z&#xff0c;若當前編輯的文件曾被修改過&#xff0c;則Vi保存該文件后退出&#xff0c;返回到shell&#xff1b;若當前編輯的文件沒被修改過…

算法筆記_164:算法提高 最小方差生成樹(Java)

目錄 1 問題描述 2 解決方案 1 問題描述 問題描述給定帶權無向圖&#xff0c;求出一顆方差最小的生成樹。輸入格式輸入多組測試數據。第一行為N,M&#xff0c;依次是點數和邊數。接下來M行&#xff0c;每行三個整數U,V,W&#xff0c;代表連接U,V的邊&#xff0c;和權值W。保證圖…

番石榴分配器vs StringUtils

因此&#xff0c;我最近寫了一篇有關舊的&#xff0c;可靠的Apache Commons StringUtils的文章 &#xff0c;該文章引起了一些評論&#xff0c;其中之一是Google Guava提供了更好的連接和拆分字符串的機制。 我必須承認&#xff0c;這是我尚未探索的番石榴的一個角落。 因此&am…

layui數據表格(一:基礎篇,數據展示、分頁組件、表格內嵌表單和圖片)

表格展示神器之一&#xff1a;layui表格 前言&#xff1a;在寫后臺管理系統中使用最多的就是表格數據展示了&#xff0c;使用表格組件能提高大量的開發效率&#xff0c;目前主流的數據表格組件有bootstrap table、layui table、easyUI table等.... 博主個人比較傾向于layui&am…

算法設計與分析_算法設計與分析(第2版)第2章分治策略回顧

YI時間&#xff5c;外刊&#xff5c;MM-DFW&#xff5c;機器學習系列點擊上方藍字&#xff0c;關注給你寫干貨的松子茶分治策略是通用算法設計技術之一&#xff0c;很多有效的算法是它的特殊實現,顧名思義就是分而治之。一個問題能夠用分治法求解的要素是問題能夠按照某種方式分…

2017-2018-1 Java演繹法 第三周 作業

團隊任務&#xff1a;團隊展示與選題團隊展示 隊員學號及姓名 學號  姓名  主要負責工作  20162315  馬軍  日常統計&#xff0c;項目部分代碼  20162316  劉誠昊  項目部分代碼&#xff0c;代碼質量測試  20162317  袁逸灝  組長 項目 主要 代碼  201…

linux開機啟動roscore,樹莓派ubuntuMate系統中開機自啟動ROS的launch文件

0x00 為何需要開機自啟動launch文件在ROS開發后期階段由于功能已經趨于穩定&#xff0c;因此就需要系統在一上電啟動后就自動把ROS下的各節點程序加載運行&#xff0c;這樣就省去了我們還得手動輸入roslaunch命令來加載bringup的launch文件的操作。經過我的實際測試目前有兩種方…

Oracle ADF移動世界! 你好!

您好&#xff0c;ADF Mobile&#xff0c;世界&#xff01; 您可能已經知道... ADF Mobile在這里&#xff01; 以下是一些鏈接&#xff0c;這些鏈接會讓您有賓至如歸的感覺。 ADF Mobile主頁&#xff1a; http://www.oracle.com/technetwork/developer-tools/adf/overview/ad…

Bootstrap里的文件分別代表什么意思及其引用方法

關于Bootstrap打包的文件分別代表什么意思&#xff0c;官網也沒有給出一個明確的解釋&#xff0c;在網上查了一些資料&#xff0c;總價歸納了如下&#xff1a; bootstrap/ <!--主目錄--> ├── css/ <!--CSS樣式文件--> │ ├── bootstrap.css <!…

css 小知識點:inline/inline-block/line-height

inline: 此元素會被顯示為內聯元素&#xff0c;元素前后沒有換行符。因此&#xff1a;無法設置寬度和高度&#xff5e; inline-block: 行內塊元素。元素前后沒有換行符&#xff08;CSS2.1 新增的值&#xff09; 用通俗的話講&#xff0c;就是不獨占一行的塊級元素。然后擁有…

Linux外域遞送郵件,求助:外域郵件發送不了 (頁 1) - iRedMail 技術支持 - iRedMail 開源郵件服務解決方案...

必填信息。沒有填寫將不予回復 - iRedMail 版本號&#xff1a; v0.9.5-1- 使用哪個數據庫存儲用戶帳號(OpenLDAP&#xff0c;MySQL&#xff0c;PostgreSQL)&#xff1a; v0.6.1 (MySQL)- 使用的 Linux/BSD 發行版名稱及版本號&#xff1a;CentOS 6.5- 與您的問題相關的日志…

協同過濾算法_機器學習 | 簡介推薦場景中的協同過濾算法,以及SVD的使用

本文始發于個人公眾號&#xff1a;TechFlow&#xff0c;原創不易&#xff0c;求個關注今天是機器學習專題的第29篇文章&#xff0c;我們來聊聊SVD在上古時期的推薦場景當中的應用。推薦的背后邏輯有沒有思考過一個問題&#xff0c;當我們在淘寶或者是某東這類電商網站購物的時候…

JavaOne 2012:觀察與印象

當我坐在舊金山國際機場等待登上飛機返回家中時&#xff0c;我一次又一次令人滿意但累人的JavaOne&#xff08;2012&#xff09;體驗&#xff0c;我正在開始寫這篇特別的博客文章。 自上周日的主題演講以來&#xff0c;在會議上瘋狂地撰寫了約30篇博客文章之后&#xff0c;很難…

less學習三---父選擇器

引用父選擇器需要用到“&”符號 &#xff06;運算符表示嵌套規則的父選擇器&#xff0c;并且在修改類或偽類選擇器的應用中非常普遍 ul{li{&:nth-child(2) a {color: red;&:hover {color: yellow;}}} }//編譯為 ul li:nth-child(2) a {color: red; } ul li:nth-ch…

SaltStack匹配target-第六篇

練習內容 Salt遠程執行中目標選擇常用的模式 1.通配符匹配 2.正則表達式匹配 3.List支持 4.Grains匹配 5.IP地址匹配 6.混合匹配 7.Node groups 遠程執行格式 target就是我們要選擇的minion salt <target> <function> [arguments] 一&#xff0c;通配符匹配&#x…

heartbeat+drbd+mysql

配置heartbeat接管drbd服務 配置heartbeat接管drbd服務&#xff08;延續之前heartbeat及drbd博文內容&#xff09;1、兩端確認都建立好 /data目錄2、關閉drbd服務,關閉heartbeat服務&#xff0c;自啟動全部關閉3、兩端配置haresourcesdata-1-1 IPaddr::192.168.0.191/24/eth0 d…

在linux下dns綁定域名,在Linux系統中,使用Bind搭建DNS域名解析服務

DNS域名解析服務(DomainNameSystem)是用于解析域名與IP地址對應關系的服務作用為維護著一個地址數據庫&#xff0c;記錄著各種主機域名與IP地址的對應關系&#xff0c;以便為客戶提供正向或反向的地址查詢服務&#xff0c;即正向解析與反向解析。正向解析&#xff1a;將制定的域…