gpt4 book ai didi

java - 使用 joda time 确定 if 语句持续多长时间(处理)

转载 作者:行者123 更新时间:2023-11-30 08:03:10 25 4
gpt4 key购买 nike

我需要确定 if 语句执行了多长时间。我编写了一段简单的代码来简化我的情况:

import org.joda.time.DateTime;

int a;

void setup() {
int a = 1;

}

void draw() {

if (a==1) {
System.out.println(" a is equal to 1");
}

else {
System.out.println(" a is not equal to 1");
}

}

在Processing中,draw方法会一直执行下去。所以它会不断地检查a是否等于1。在我的程序中,a的值将根据Reivision动态变化:如果检测到特定元素,a将等于1。如果没有,它将等于0 .

我想知道 if 语句执行了多长时间(以了解特定元素将被检测到多长时间)。

如果我使用:

void draw() {

long startTime = System.nanoTime();
if (a==1) {
System.out.println(" a is equal to 1");
}
long estimatedTime = System.nanoTime() - startTime;

else {
System.out.println(" a is not equal to 1");
}

}

每次执行draw方法来检查a是否等于1时,它都会将startTime重置为当前时间,因此无法添加已经过去的时间。

我想过用joda time,但是有没有办法让它“记录”if语句执行了多长时间?

最佳答案

Java 中测量耗时的标准方法是使用 System.nanoTime()作为基准。

   long startTime = System.nanoTime();    
if (a==1) {
System.out.println(" a is equal to 1");
}
long estimatedTime = System.nanoTime() - startTime;

您不应该使用 System.currentTimeMillis(),请参阅此 answer为什么。

编辑。看多久a == 1 :

import org.joda.time.DateTime;

int a;
long startTime = null;
void setup() {
int a = 1;
startTime = System.nanoTime();
}

void draw() {

if (a==1) {
System.out.println(" a is equal to 1");
}

else {
long estimatedTime = System.nanoTime() - startTime;

System.out.println(" a is not equal to 1" + "took" + estimatedTime);
}

}

关于java - 使用 joda time 确定 if 语句持续多长时间(处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571612/

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