У меня есть очень простой тест модуля, который просто выделяет много строк:Java производительность распределения памяти (SunOS против Windows)
public class AllocationSpeedTest extends TestCase {
public void testAllocation() throws Exception {
for (int i = 0; i < 1000; i++) {
long startTime = System.currentTimeMillis();
String a = "dummy";
for (int j = 0; j < 1000; j++) {
a += "allocation driven";
}
System.out.println(i + ": " + (System.currentTimeMillis() - startTime) + "ms " + a.length());
}
}
}
На моем Windows PC (Intel Core Duo, 2,2 ГГц, 2 Гб) это печатает в среднем:
...
71: 47ms 17005
72: 47ms 17005
73: 46ms 17005
74: 47ms 17005
75: 47ms 17005
76: 47ms 17005
77: 47ms 17005
78: 47ms 17005
79: 47ms 17005
80: 62ms 17005
81: 47ms 17005
...
на SunOS (5,10 Generic_138888-03 sun4v Sparc SUNW, SPARC-Enterprise-T5120):
...
786: 227ms 17005
787: 294ms 17005
788: 300ms 17005
789: 224ms 17005
790: 260ms 17005
791: 242ms 17005
792: 263ms 17005
793: 287ms 17005
794: 219ms 17005
795: 279ms 17005
796: 278ms 17005
797: 231ms 17005
798: 291ms 17005
799: 246ms 17005
800: 327ms 17005
...
JDK версия 1.4.2_18 на обеих машинах. Параметры JVM те же и являются следующими:
–server –Xmx256m –Xms256m
Может кто-нибудь объяснить, почему SUN супер сервер медленнее?
(http://www.sun.com/servers/coolthreads/t5120/performance.xml)
Что вы хотите объяснить? – Mark
Похоже, что первый компьютер быстрее второго. – MicSim
Предположительно, тот факт, что на машине SunOS тест занимает примерно 5-6 раз больше, чем на Windows. – Avi