课堂上跑完同一段代码,同学之间的运行时间差异很大,很难有机会将不同型号的cpu放在一起直观的通过代码的运行时间进行比较,而这次无意间比较的结果也确实出乎我的意料。
参与对比的cpu:
Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
Intel(R) Core(TM) i7-10870H CPU @ 2.20GHz
Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
测试使用编译器:
IntelliJ IDEA2021
测试用代码:
public class Test {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder("");
long start = System.currentTimeMillis();
for (int i = 0; i < 30000; i++) {
builder.append(i);
}
long end = System.currentTimeMillis();
System.out.println("builder共耗时毫秒:" + (end - start));
System.out.println("---------------------------------");
String str = "";
long start1 = System.currentTimeMillis();
for (int i = 0; i < 30000; i++) {
str += i ;
}
long end1 = System.currentTimeMillis();
System.out.println("str共耗时毫秒:" + (end1 - start1));
}
}
cpu型号Intel(R) Core(TM) | 综和排名(数据来源:cup7网站) | str耗时单位:毫秒 | builder耗时单位:毫秒 | cpu核心代号 |
i7-10870H CPU @ 2.20GHz | 315top1 | 3611last1 | 3 | Comet Lake-S |
i7-9750H CPU @ 2.60GHz | 466 | 340top1 | 3 | Coffee Lake-H Refresh |
i5-1135G7 @ 2.40GHz | 525 | 2300 | 3 | Tiger Lake |
i7-10510U CPU @ 1.80GHz | 784 | 731 | 3 | Comet Lake |
i5-8265U CPU @ 1.60GHz | 883 | 354 | 5(3-7之间波动) | Whiskey Lake |
i5-8250U CPU @ 1.60GHz | 904last1 | 632 | 10 | Kaby Lake Refresh |
统计结果如上表,新一代cpu的str加运算表现对比老一代着实离谱,同学们甚至怀疑用8代i5的同学作弊,但多名使用8代i5-8265u的同学都能印证str加运算的耗时确实在340-600间波动,以上测试都是在多次运行后取的代表值。
通常的说法是运行速度与电脑的整体性能有关,但新的cpu总归比旧的要有优势,这其中的缘由还需要深入了解才能有发现,初步猜测是与核心架构有关,未完待续。
一个思路
(10 封私信) 英特尔11代i5-1135G7有那么拉胯不堪吗? - 知乎 (zhihu.com)