!752 sclass A { int a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8; } sclass B { int a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8; int i = 9, j = 10, k = 11, l = 12, m = 13, n = 14; } static final long rep = 1000000; static S[] letters = new S[27]; !include #1005583 // getOpt_cached p { new A a; new B b; for (int i = 1; i <= 26; i++) letters[i] = str(alphabetLetter(i)); twice { time { for (long j = 0; j < rep; j++) { for (int i = 1; i <= 8; i++) { // Be mean - alternate between classes (different fields, same name) assertTrue(i == (Int) getOpt(a, letters[i])); assertTrue(i == (Int) getOpt(b, letters[i])); } } } time { for (long j = 0; j < rep; j++) { for (int i = 1; i <= 8; i++) { assertTrue(i == (Int) getOpt_cached(a, letters[i])); assertTrue(i == (Int) getOpt_cached(b, letters[i])); } } } long ms = getLastTiming(); print(iterationsPerSecond(rep*8, ms) + " getOpt/s"); } }