1. 程式人生 > >JVM中的MaxHeapSize值不一致問題

JVM中的MaxHeapSize值不一致問題

檢視MaxHeapSize引數值, 我們可以使用兩類JVM選項: -XX:+PrintFlagsFinal 和 -XX:+PrintCommandLineFlags. 下面是使用 -XX:+PrintFlagsFinal引數的輸出:
[[email protected] ~]# java -XX:+PrintFlagsFinal -version |grep :
    uintx InitialHeapSize                          := 258689024       {product}           
    uintx MaxHeapSize                              := 4139778048      {product}           
     bool PrintFlagsFinal                          := true            {product}           
     bool UseCompressedOops                        := true            {lp64_product}      
     bool UseParallelGC                            := true            {product}           
第三列”=”表示第四列是引數的預設值,而”:=” 表明了引數被使用者或者JVM賦值了。

如果執行 -XX:+PrintCommandLineFlags, 能看到 :
[
[email protected]
~]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=258689024 -XX:MaxHeapSize=4139024384 -XX:+PrintCommandLineFlags -XX:+UseCompressedOops -XX:+UseParallelGC 

你發現了嗎?兩個MaxHeapSize值不相等, 為什麼?

實際的堆大小和使用者在命令列指定的大小不一致,是由於校正機制和就近取整
預設情況下,堆是2MB對齊的,也就是說堆的最小分配單元是2MB

來自 -XX:+PrintCommandLineFlags 的 4139024384 經過2MB校正並向上取整後 變為 來自 -XX:+PrintFlagsFinal的4139778048  這是最終的堆大小   . 
因為 4139024384 不是 2M對齊的:4139024384 / (2*1024*1024) = 1973.640625. 向上取整後變成1974,所以 4139778048 / (2*1024*1024) = 1974
可以得出最終堆大小為4139778048,和-XX:+PrintFlagsFinal的4139778048一致

相關推薦

JVMMaxHeapSize一致問題

檢視MaxHeapSize引數值, 我們可以使用兩類JVM選項: -XX:+PrintFlagsFinal 和 -XX:+PrintCommandLineFlags. 下面是使用 -XX:+PrintFlagsFinal引數的輸出: [[email protect

angular4ngModel雙向繫結在限制輸入情況下與value一致的問題及嘗試的解決方法

近期公司的一個後臺專案在使用angular4進行開發,隨著專案的推進和迭代開發,需要對有的input框的value值進行限制輸入,例如目前專案的一些input框只允許輸入數字和'.' 這兩種形式的內容。就在input標籤的中添加了(keyup)屬性,將相應的ts檔案中編寫的一個正則驗證方法賦值給該屬

EF執行SQL語句 結果和直接在Sqlserver執行結果一致

enume 出了 text con query context png syn raw 先說問題 直接執行sql的結果 var result = base.Context.Customers.SqlQuery(sql);   sql 語句是打斷點取得的,連接的也

為什麼相同的投影座標系儲存在ArcSDE獲得SRID一致

導語 今天在測試關於ST_Geometry的空間函式,系統提示我的兩個要素類的SRID不一致,但是我建立的兩個要素類都是同一個投影座標系,WGS_1984_Web_Mercator_Auxiliary_Sphere,一下子讓我想起了以前曾經有使用者問過的一個問題,也是一樣的,如標題所示,為什麼

django之cookie頁面顯示與瀏覽器儲存的一致問題

個人遇到的關於django的cookie問題: counter = int(request.COOKIES['count']) + 1 # del request.COOKIES['count'] # 刪除伺服器COOKIES if counter > 3: counter =

spring事務管理,基於xml配置完成事務回滾;spring資料庫表中欄位名和pojo屬性名一致時候,實現RowMapper介面手動封裝

宣告使用JDK8,spring5.0.7, 測試說明: service 層 宣告介面進行轉賬,從A轉賬B ,然後對AB 進行更新操作,在事務中對find方法開啟 只讀許可權,無法進行更新操作,造成事務回滾進行測試事務; 主要測試方法:* void tra

javascript new Date().toLocaleString()在不同瀏覽器的結果一致的解決方法

Date.prototype.toLocaleString = function () { return this.getFullYear()+’-’+(this.getMonth()+1)+’-’+this.getDate()+’ &nbsp’+this.getHou

excel同時使用條件格式進行顏色標註

有一個excel表格檔案是通過兩個資料來源獲取拼接得到的,其中有兩列的值大部分是相同的,小部分不同。對兩個列值不同的行進行顏色標識,做法是:首先選中所有的行列。其次,點選“條件格式”,然後選擇“新建規則”——“使用公式確定要使用格式的單元格”第三,在公式欄中填入=$A1<

Java漢字md5一致問題

通過main方法測試得到一個加密值,通過servlet request呼叫得到一個加密值,都是加密相同的漢字,但是結果不同。 如果是加密英文,則不會有這種問題。 原因就在於漢字編碼,在加密時設定一下編碼UTF-8,問題解決。 public static String En

解決spark-md5.js和java計算檔案md5一致問題

正確程式碼如下 java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; impor

word使用技巧---解決Word 生成目錄時前導符一致的問題(即通常所謂的目錄省略號大小一致)

【術語】前導符:在目錄中使用或填充製表符空白位置的實線、虛線或點劃線, 這些實線、虛線或點劃線就是文章的前導符。 最近在忙於做畢業論文,目錄採用word的自動生成功能(ver:2007)。 插入

Spring配置檔案屬性能提示的解決辦法(eclipse新增xsd檔案)

原因:eclipse中沒有配置xsd檔案解決辦法:步驟一:把標頭檔案拷貝到你的spring配置檔案中。<?xml version="1.0" encoding="UTF-8"?> <b

關於字符集中NLS_LANG引數show parameter nls 和v$nls_parameter 一樣

今天下午,在測試庫上偶然發現: alter session set nls_language='american';   後 show parameter nls 這個nls_language引數竟然沒有變 執行:select * from v$nls_parameter

從大到小輸出二叉搜尋樹小於K的關鍵字

概要 這是王道資料結構複習資料上的一道題。該書給出了遞迴演算法,但是解析中對於非遞迴演算法說使用非遞迴中序遍歷的思路進行解答,然而這種思路需要將結點全部壓入堆疊之後,依次出棧,這樣會帶來多餘的O(n)的時間。根據 二叉搜尋樹的性質可知,二叉搜尋樹的中序遍歷是從

linux Shell grep+wc取在shell的結果與手動執行結果一致的坑

vim restart.sh #!/bin/bash VDS=ps -ef |grep -w vds|grep -v grep|wc -l if [ $VDS -eq 0 ];thencd /usr/local/program;./linux-start.sh restartelseecho "It's

Redis存入存儲的編碼方式一致解決問題

rds import imp value res div rom 解決辦法 取出   在利用redis緩存的時候,存入的數據與取出的數據編碼方式不一致解決辦法。 from redis import StrictRedis #ecoding = ‘utf-8‘,默認解碼方式

VS "以下文件的行尾一致,要將行尾標準化嗎?"

windows 兩個 打字 字符 unix 而在 vss spa http 原文地址:http://www.cnblogs.com/yymn/p/6852857.html 這是由Windows和Unix不同的標準引起的...即“回車”和“換行”的問題... “回車”和“換行

網頁圖片顯示方向與實際圖片方向一致

服務 拍攝 blog 解決 log 照片 -o 不一致 oss 圖片為手機拍攝的照片,可能存在方向問題,exif.js可以解決。 參考 http://blog.csdn.net/cdnight/article/details/46457241 每張圖片在獲取到後都用exif

android studio 開發啟動android項目報錯sdk版本一致解決方案

技術分享 發現 依賴 adl 目的 clas studio ima 需要 安卓項目開發中新建項目後再run‘的時候發現報錯com.android.support:appcompat-v7依賴報錯 查看下build.gredle所配置的參數: 打開項目的bui

電腦頁面放到手機顯示時,遇到了一個奇怪的問題:字體的顯示大小,與在CSS指定的大小一致

inf 通過 左右 可能 標簽 其他 size idt min-width 最近在做一個手機端頁面時,遇到了一個奇怪的問題:字體的顯示大小,與在CSS中指定的大小不一致。大家可以查看這個Demo(記得打開Chrome DevTools)。 就如上圖所示,你可以發現,原本指定