JDK 1.7 64位,i5-3230m,win7 64位企业版。100万次getInstance,单例使用Object。
- synchronized方法:
实验号 | 时间 |
---|---|
0 | 86 |
1 | 41 |
2 | 18 |
3 | 22 |
4 | 43 |
5 | 18 |
6 | 17 |
7 | 17 |
8 | 18 |
9 | 17 |
- Double Check
实验号 | 时间 |
---|---|
0 | 4 |
1 | 10 |
2 | 1 |
3 | 2 |
4 | 1 |
5 | 1 |
6 | 1 |
7 | 1 |
8 | 2 |
9 | 1 |
- enum
实验号 | 时间 |
---|---|
0 | 4 |
1 | 4 |
2 | 0 |
3 | 0 |
4 | 0 |
5 | 0 |
6 | 0 |
7 | 0 |
8 | 0 |
9 | 0 |
事实证明,三者有数量级的提升,如果调用很多的Singleton,使用Enum还是更好的。