下面的 java 程序,在我的电脑上运行时间 600ms 左右,但把 for 循环里面注释掉的两行加回来的话,时间反而会降到 50-60ms,有人明白这是什么情况吗? java 版本是 JDK11,windows ( win10 )和 linux ( ubuntu 18.04 )均有这种情况。
顺便问一下,spring 是自身做了缓存吗,我把这段代码和一个依赖外部参数的 sql 查询代码放在 spring boot 项目的一个接口里面,每次调用都修改参数的话,只有前两次会耗比较长时间,后面基本就不耗时间了……
public static void main(String[] args) {
long t1 = new Date().getTime();
int res = 0;
int n = 0;
for (int i = 0; i < 2000000000; i++) {
// int baseNum = 6;
// n = baseNum * 1346;
res |= n;
}
long t2 = new Date().getTime();
System.out.println(String.format("time: %d, res: %d", t2 - t1, res));
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.