análisis en profundidad disruptor

Aprender disruptor, primero comprender los siguientes conocimientos

Vamos a aprender acerca de caché de la CPU: http://ifeve.com/from-javaeye-cpu-cache/ , tales como la estructura jerárquica caché de la CPU, como un concepto de línea de caché, sé que los estudiantes pueden omitir.

 Falso problema compartir   http://ifeve.com/falsesharing   en los programas de Java, miembros de la matriz en la memoria caché es continua. De hecho, las variables miembro serán cargados desde la vecina objetos Java en la misma línea de caché. Si varios subprocesos operativo diferentes miembros de variables, pero la misma línea de caché, el intercambio falsa (falso) se produjo el intercambio problema

Sabemos que una línea de caché de 64 bytes, y una cabecera objeto estacionario programa Java 8 bytes (32 bits) o 12 bytes (sistema de compresión de 64 bits activados de forma predeterminada, no está abierto comprimido en 16 bytes), como se detalla en  el enlace sólo tenemos que llenar seis inútil maquillaje entero largo de hasta 6 * 8 = 48 bytes, por lo que diferentes VolatileLong objetos en diferentes líneas de caché, puede evitar la falsa compartición de 64 bytes (64 bits más que el sistema de línea de caché no importa, siempre y cuando los diferentes hilos no funcionan de la misma línea de caché puede ser). se llama llena este enfoque (relleno).

¿Cómo evitar la falsa compartición, un relleno de línea de caché mágica   http://ifeve.com/disruptor-cacheline-padding/

 

 

 

 

 

 

 

 

 

 

 

 

http://ifeve.com/false-sharing/

Supongo que te gusta

Origin www.cnblogs.com/amberJava/p/12654886.html
Recomendado
Clasificación