cari

Rumah  >  Soal Jawab  >  teks badan

java - 怎么看自己的JVM中cache line是多少字节的?

我们知道在java的伪共享概念中,“共享”的最小内存区域大小就是一个cache line。当两个以上CPU都要访问同一个cache line大小的内存区域时,就会引起冲突。
因此我们通常采用填充的办法,解决cache line 带来的速度慢的问题。

问题:
如何查看自己的HotSpot JVM的缓存行cache line的大小呢?我知道默认的是64字节,但是不同机子还是不一样的。

阿神阿神2859 hari yang lalu761

membalas semua(2)saya akan balas

  • 阿神

    阿神2017-04-18 09:23:00

    Saiz talian cache ini berkait rapat dengan CPU. jdk tidak menyediakan API sedemikian.
    Saya tidak tahu bagaimana sistem windows Dalam sistem linux, terdapat fail ini dalam direktori /sys/devices/system/cpu/cpu0/cache/

    coherency_line_size
    level
    number_of_sets
    physical_line_partition
    shared_cpu_list
    shared_cpu_map
    size
    type
    ways_of_associativity

    Antaranya, coherency_line_size merekodkan saiz baris cache.

    Ia juga boleh diperolehi melalui `getconf LEVEL1_DCACHE_LINESIZE
    64` pada baris arahan.

    Jika anda ingin mendapatkan nombor ini semasa program Java sedang berjalan, perkara yang anda boleh fikirkan sekarang ialah melaksanakan shell secara dinamik atau melihat fail apabila program mula mendapatkan nombor ini. Kemudian tetapkan nombor ini ke dalam sifat sistem, yang boleh dikeluarkan dan digunakan kemudian.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 09:23:00

    Cuba buka jvisualvm pada baris arahan dan lihat.

    balas
    0
  • Batalbalas