簡單的實驗表明,JDK7
編譯HashMap<Integer, Integer>
執行簡單串行輸入查找的基準時,使用多個線程:HashMap和JDK 7
- 插入萬個號碼。
- 搜索數以百萬計的數字。
怎麼回事? JDK7自動猜測如何並行化這段代碼?我需要對單線程行爲進行基準測試,我該怎麼做?
碼,約2.5內核加載:
import java.util.*;
public class HashSpeed {
public static void main(String[] args)
{
HashMap<Integer, Integer> m = new HashMap<Integer, Integer>(10000);
final int N = 10000000;
for (int i=1; i<N; i+=2)
m.put(i, i);
for (int j=0; j<10; j++) {
for (int i=0; i<N; i++) {
if (m.get(i) != null != (i%2==1)) {
System.out.println("failed");
}
}
}
System.out.println("TEST OK");
}
}
請提供代碼和建議多線程的證據? – 2012-01-31 22:20:38
@LouisWasserman:完成。 – Cartesius00 2012-01-31 22:25:26
這不包括導致您認爲它是多線程的證據...... – 2012-01-31 22:28:59