使用 joda time 确定 if 语句持续多长时间(处理中)
Determine how long a if statement last using joda time (Processing)
我需要确定 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的值将根据Reactivision动态变化:如果检测到特定元素,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 时间,但是有没有办法让 "record" 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);
}
}
我需要确定 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的值将根据Reactivision动态变化:如果检测到特定元素,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 时间,但是有没有办法让 "record" 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);
}
}