95 lines
2.6 KiB
Java
Raw Normal View History

2025-12-02 06:54:32 +01:00
public class Benchmark {
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static int fibonacciIterative(int n) {
if (n <= 1) {
return n;
}
int a = 0;
int b = 1;
for (int i = 2; i <= n; i++) {
int temp = a + b;
a = b;
b = temp;
}
return b;
}
public static int countPrimes(int limit) {
int count = 0;
for (int n = 2; n <= limit; n++) {
boolean isPrime = true;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
count++;
}
}
return count;
}
public static long sumLoop(int iterations) {
long sum = 0L;
for (int i = 0; i < iterations; i++) {
sum = sum + i;
}
return sum;
}
public static int main() {
System.out.println("=== Rava Benchmark Suite ===");
long start = System.nanoTime();
int fib30 = fibonacci(30);
long end = System.nanoTime();
long fibTime = (end - start) / 1000000;
System.out.print("Fibonacci(30) recursive = ");
System.out.println(fib30);
System.out.print("Time: ");
System.out.print(fibTime);
System.out.println(" ms");
start = System.nanoTime();
int fib40iter = fibonacciIterative(40);
end = System.nanoTime();
long fibIterTime = (end - start) / 1000000;
System.out.print("Fibonacci(40) iterative = ");
System.out.println(fib40iter);
System.out.print("Time: ");
System.out.print(fibIterTime);
System.out.println(" ms");
start = System.nanoTime();
int primes = countPrimes(100000);
end = System.nanoTime();
long primeTime = (end - start) / 1000000;
System.out.print("Primes up to 100000 = ");
System.out.println(primes);
System.out.print("Time: ");
System.out.print(primeTime);
System.out.println(" ms");
start = System.nanoTime();
long sumResult = sumLoop(10000000);
end = System.nanoTime();
long sumTime = (end - start) / 1000000;
System.out.print("Sum 0..10000000 = ");
System.out.println(sumResult);
System.out.print("Time: ");
System.out.print(sumTime);
System.out.println(" ms");
System.out.println("=== Benchmark Complete ===");
return 0;
}
}