Here I wrote a test about the access speed of a local, member, mutable member:
public class VolatileTest {
public int member = -100;
public volatile int volatileMember = -100;
public static void main(String[] args) {
int testloop = 10;
for (int i = 1; i <= testloop; i++) {
System.out.println("Round:" + i);
VolatileTest vt = new VolatileTest();
vt.runTest();
System.out.println();
}
}
public void runTest() {
int local = -100;
int loop = 1;
int loop2 = Integer.MAX_VALUE;
long startTime;
startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
for (int j = 0; j < loop2; j++) {
}
for (int j = 0; j < loop2; j++) {
}
}
System.out.println("Empty:" + (System.currentTimeMillis() - startTime));
startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
for (int j = 0; j < loop2; j++) {
local++;
}
for (int j = 0; j < loop2; j++) {
local--;
}
}
System.out.println("Local:" + (System.currentTimeMillis() - startTime));
startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
for (int j = 0; j < loop2; j++) {
member++;
}
for (int j = 0; j < loop2; j++) {
member--;
}
}
System.out.println("Member:" + (System.currentTimeMillis() - startTime));
startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
for (int j = 0; j < loop2; j++) {
volatileMember++;
}
for (int j = 0; j < loop2; j++) {
volatileMember--;
}
}
System.out.println("VMember:" + (System.currentTimeMillis() - startTime));
}
}
And here is the result of my X220 (I5) processor:
Round: 1 Empty: 5 Local: 10 Member: 312 VMember: 33378
Round: 2 Empty: 31 Local: 0 Member: 294 VMember: 33180
Round: 3 Empty: 0 Local: 0 Member: 306 VMember: 33085
Round: 4 Empty: 0 Local: 0 Member: 300 VMember: 33066
Round: 5 Empty: 0 Local: 0 Member: 303 VMember: 33078
Round: 6 Empty: 0 Local: 0 Member: 299 VMember: 33398
Round: 7 Empty: 0 Local: 0 Member: 305 VMember: 33139
Round: 8 Empty: 0 Local: 0 Member: 307 VMember: 33490
Round: 9 Empty: 0 Local: 0 Member: 350 VMember: 35291
Round: 10 Empty: 0 Local: 0 Member: 332 VMember: 33838
, 100 . , - , , , " ". 100- ?
PS: Core II. 9:50, 5 . , . 5 - , ?