亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么看自己的JVM中cache line是多少字節的?

怎么看自己的JVM中cache line是多少字節的?

鳳凰求蠱 2018-10-19 22:39:42
我們知道在java的偽共享概念中,“共享”的最小內存區域大小就是一個cache line。當兩個以上CPU都要訪問同一個cache line大小的內存區域時,就會引起沖突。因此我們通常采用填充的辦法,解決cache line 帶來的速度慢的問題。問題:如何查看自己的HotSpot JVM的緩存行cache line的大小呢?我知道默認的是64字節,但是不同機子還是不一樣的。
查看完整描述

2 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

試試在命令行打開jvisualvm看看。

查看完整回答
反對 回復 2018-10-28
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

這個cache line size與cpu息息相關。jdk也沒有提供這樣的api。
不知道windows系統是怎樣的,linux系統中,在/sys/devices/system/cpu/cpu0/cache/目錄下有這些文件

coherency_line_size
level
number_of_sets
physical_line_partitionshared_cpu_listshared_cpu_map
size
type
ways_of_associativity

其中coherency_line_size記錄了cache line size。

在命令行下也可以通過`getconf LEVEL1_DCACHE_LINESIZE
64`來獲得。

要想在Java程序運行時得到這個數,現在能想到的就是在程序啟動時先動態執行shell或查看文件,獲取這個數。然后把這個數set到system property里,之后可以取出來用。


查看完整回答
反對 回復 2018-10-28
  • 2 回答
  • 0 關注
  • 1639 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號