summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/com/nsrddyn/Main.scala25
-rw-r--r--src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala17
-rw-r--r--src/main/scala/com/nsrddyn/tools/Benchmark.scala14
-rw-r--r--src/main/scala/com/nsrddyn/tools/Measurable.scala5
4 files changed, 37 insertions, 24 deletions
diff --git a/src/main/scala/com/nsrddyn/Main.scala b/src/main/scala/com/nsrddyn/Main.scala
index a27597b..aedad3c 100644
--- a/src/main/scala/com/nsrddyn/Main.scala
+++ b/src/main/scala/com/nsrddyn/Main.scala
@@ -4,24 +4,23 @@ object Torque {
import java.time.Instant
import com.nsrddyn.alu.*
+ import com.nsrddyn.tools.Benchmark
@main def main(args: String*): Unit =
- // ANSI ESCAPE CODE: clear screen
- println("\u001b[2J\u001b[H")
- println("--- TORQUE STRESS TESTING UTILITY ---")
+ val pr = new Prime()
+ val br = new Benchmark()
- val now: Instant = Instant.now()
- println(now)
+ // ANSI ESCAPE CODE: clear screen
+ println("\u001b[2J\u001b[H")
+ println("--- TORQUE STRESS TESTING UTILITY ---")
- val pr = new Prime()
+ // val value = 2147483647
+ val value = 200000
- /*
- val intMax = 2147483647
- pr.run(intMax)
- */
-
- val intMax = 2147483647
- println(pr.measure())
+ val time = br.measure(pr.run(value))
+ println(time)
}
+
+
diff --git a/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala b/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala
index 47c83f1..effedef 100644
--- a/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala
+++ b/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala
@@ -1,9 +1,9 @@
package com.nsrddyn.alu
-import com.nsrddyn.tools.Measurable
+import com.nsrddyn.tools.Benchmark
-class Prime() extends Measurable:
+class Prime() extends Benchmark:
/*
* Calculate all primes up to limit
@@ -24,17 +24,22 @@ class Prime() extends Measurable:
* We want the function to be less optimized so that the CPU has more work == more stress
*/
+
def isPrime(n: Int): Boolean = {
+ val start = measure()
if n <= 1 then false
else !(2 to math.sqrt(n).toInt).exists(i => n % i == 0)
}
def run(n: Int): Unit = for i <- 0 to n do isPrime(i)
- def measure(): Long = {
-
- // TODO: implement measure methode to measure the time that it takes to find that prime number
+
+ // TODO: implement measure methode to measure the time that it takes to find that prime number
+ def measure(): Long ={
+
+ val start = System.nanoTime()
System.nanoTime()
-
+ val end = System.nanoTime()
+ start - end
}
diff --git a/src/main/scala/com/nsrddyn/tools/Benchmark.scala b/src/main/scala/com/nsrddyn/tools/Benchmark.scala
new file mode 100644
index 0000000..5d7906a
--- /dev/null
+++ b/src/main/scala/com/nsrddyn/tools/Benchmark.scala
@@ -0,0 +1,14 @@
+package com.nsrddyn.tools
+
+class Benchmark {
+
+ // add a reference to a function
+ def measure(work: => Unit): Long = {
+
+ val start = System.nanoTime()
+ work
+ val end = System.nanoTime()
+ end - start
+ }
+
+}
diff --git a/src/main/scala/com/nsrddyn/tools/Measurable.scala b/src/main/scala/com/nsrddyn/tools/Measurable.scala
deleted file mode 100644
index 3d0234a..0000000
--- a/src/main/scala/com/nsrddyn/tools/Measurable.scala
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.nsrddyn.tools
-
-trait Measurable {
- def measure(): Long
-}