gpt4 book ai didi

java - System.out.println()耗时; Java语句?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:37 28 4
gpt4 key购买 nike

我听说 System.out.println(); Java 语句是昂贵的(它消耗了很多时间)
所以我试着评估一下它的成本:
当我评估 5 个语句时...成本 = 1.0
所以我预计 1 条语句的成本 = 0.2
但实际上我发现 The cost = 0.0 !!

double t1 = 0;
double t2 = 0;

t1 = System.currentTimeMillis();
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
System.out.println("aa");
t2 = System.currentTimeMillis();
System.out.println("The cost = " + (t2-t1) );
// The cost = 1.0


t1 = System.currentTimeMillis();
System.out.println("aa");
t2 = System.currentTimeMillis();
System.out.println("The cost = " + (t2-t1) );
// The cost = 0.0
// Expected : 1.0/5 = 0.2 -- But Actual : 0.0

为什么?

最佳答案

System#currentTimeMillis返回 long 而不是 double。因此,您丢失了 .2

测试 5 个语句不是一个好主意,特别是当您几乎感觉不到执行它所花费的时间时。我建议您测试 5 个以上的语句,然后将数量减少到 1 个以上。

想要精确测量时间,最好使用System#nanoTime ,因为它以纳秒给出时间:

long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;

查找“nanoTime vs currentTimeMillis”,您将获得数百篇文章。

关于java - System.out.println()耗时; Java语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20683361/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com