Значение по умолчанию PrefetchCopyIntervalInBytes
под x86 - 576 (9 * dcache_line), а под aarch64 - 192 (3 * dcache_line). Это объясняет, почему значение по умолчанию PrefetchCopyIntervalInBytes
составляет 576 в src / hotspot / cpu / x86 / vm_version_x86. cpp
// Prefetch settings
// Prefetch interval for gc copy/scan == 9 dcache lines. Derived from
// 50-warehouse specjbb runs on a 2-way 1.8ghz opteron using a 4gb heap.
// Tested intervals from 128 to 2048 in increments of 64 == one cache line.
// 256 bytes (4 dcache lines) was the nearest runner-up to 576.
// gc copy/scan is disabled if prefetchw isn't supported, because
// Prefetch::write emits an inlined prefetchw on Linux.
// Do not use the 3dnow prefetchw instruction. It isn't supported on em64t.
// The used prefetcht0 instruction works for both amd64 and em64t.
Но почему значение по умолчанию для этой опции для руки не объясняется.
Так как же это значение определяется для aarch64?