java - 怎么看自己的JVM中cache line是多少字节的?
阿神
阿神 2017-04-18 09:21:00
0
2
750

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

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

阿神
阿神

闭关修行中......

répondre à tous(2)
阿神

Cette taille de ligne de cache est étroitement liée au processeur. jdk ne fournit pas une telle API.
Je ne sais pas à quoi ressemble le système Windows. Dans le système Linux, il y a ces fichiers dans le répertoire /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

Parmi eux, coherency_line_size enregistre la taille de la ligne de cache.

Il peut également être obtenu via `getconf LEVEL1_DCACHE_LINESIZE
64` sur la ligne de commande.

Si vous souhaitez obtenir ce numéro lorsque le programme Java est en cours d'exécution, ce à quoi vous pouvez penser maintenant est d'exécuter dynamiquement le shell ou d'afficher le fichier lorsque le programme commence à obtenir ce numéro. Définissez ensuite ce numéro dans la propriété système, qui peut être retiré et utilisé ultérieurement.

Ty80

Essayez d'ouvrir jvisualvm sur la ligne de commande et voyez.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal