How can I compare 2 methods in Java?
•
Java
I have two methods in Java (such as factorial calculation), and I have to test these two methods to find out which is faster I treat this code as recursion and loop:
They are all in the same kind of data
public long FakultaetRekursiv( int n){ if(n == 1){ return 1; } else{ return FakultaetRekursiv(n-1) * n; } } public long Fakultaet( int n){ int x=1; for(int i=1; i<=n; i++){ x= x*i; } return x; }
I heard that currenttimemillis () might help, but I don't know what to do thank you.
Solution
Micro benchmarking is hard, use the correct tool, such as caliper This is an example for you:
import com.google.caliper.SimpleBenchmark; public class Benchmark extends SimpleBenchmark { @Param({"1","10","100"}) private int arg; public void timeFakultaet(int reps) { for (int i = 0; i < reps; ++i) { Fakultaet(arg); } } public void timeFakultaetRekursiv(int reps) { for (int i = 0; i < reps; ++i) { FakultaetRekursiv(arg); } } }
The framework will run the patrol time * () method many times, and it will inject different Arg values and mark them separately
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码