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; } }