summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdellah El Morabit <nsrddyn@gmail.com>2025-11-19 15:01:14 +0100
committerAbdellah El Morabit <nsrddyn@gmail.com>2025-11-19 15:01:14 +0100
commit4bb2ff6828e344c0c1398f9ac5ddb318948c4a47 (patch)
treeb4543831c51d4f1b2a7eeb62e42bfedeaf33e453
parent308f6addd0615ff073f76297630f1e716e00ed48 (diff)
feature: performance measuring to be implemented in prime generator
- created new prime class - measures performance based on time ( for now ) - needs further implementation
-rw-r--r--src/main/scala/com/nsrddyn/Main.scala7
-rw-r--r--src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala20
-rw-r--r--src/main/scala/com/nsrddyn/tools/Measurable.scala5
3 files changed, 28 insertions, 4 deletions
diff --git a/src/main/scala/com/nsrddyn/Main.scala b/src/main/scala/com/nsrddyn/Main.scala
index dd7530c..a27597b 100644
--- a/src/main/scala/com/nsrddyn/Main.scala
+++ b/src/main/scala/com/nsrddyn/Main.scala
@@ -3,6 +3,7 @@ package com.nsrddyn
object Torque {
import java.time.Instant
+ import com.nsrddyn.alu.*
@main def main(args: String*): Unit =
@@ -15,6 +16,12 @@ object Torque {
val pr = new Prime()
+ /*
val intMax = 2147483647
pr.run(intMax)
+ */
+
+ val intMax = 2147483647
+ println(pr.measure())
+
}
diff --git a/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala b/src/main/scala/com/nsrddyn/cpu/ALU/Prime.scala
index 3e6ad6f..47c83f1 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
+package com.nsrddyn.alu
+import com.nsrddyn.tools.Measurable
-class Prime() {
-
+class Prime() extends Measurable:
/*
* Calculate all primes up to limit
@@ -18,11 +18,23 @@ class Prime() {
*
*/
+
+ /*
+ * TODO: I did the countrary of what i wanted to accieve with the is prime function
+ * We want the function to be less optimized so that the CPU has more work == more stress
+ */
+
def isPrime(n: Int): Boolean = {
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
+ System.nanoTime()
+
+ }
diff --git a/src/main/scala/com/nsrddyn/tools/Measurable.scala b/src/main/scala/com/nsrddyn/tools/Measurable.scala
new file mode 100644
index 0000000..3d0234a
--- /dev/null
+++ b/src/main/scala/com/nsrddyn/tools/Measurable.scala
@@ -0,0 +1,5 @@
+package com.nsrddyn.tools
+
+trait Measurable {
+ def measure(): Long
+}