--- /dev/null
+module ParasitemiaCore.EllipsesBench
+
+open System
+open System.Diagnostics
+open type System.Console
+
+open ParasitemiaCore.Ellipse
+
+let rng = System.Random (42)
+
+let generateParameters () : float * float * float * float * float * float * float * float =
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble (),
+ rng.NextDouble ()
+
+let benchOld () =
+ let sw = Stopwatch ()
+ sw.Start ()
+
+ for i in 1 .. 500_000 do
+ let p1x, p1y, m1, p2x, p2y, m2, p3x, p3y = generateParameters ()
+ ellipse p1x p1y m1 p2x p2y m2 p3x p3y |> ignore
+
+ sw.Stop ()
+ WriteLine (sprintf "Old: time = %A ms" sw.ElapsedMilliseconds)
+
+
+let benchNew () =
+ let sw = Stopwatch ()
+ sw.Start ()
+
+ for i in 1 .. 500_000 do
+ let p1x, p1y, m1, p2x, p2y, m2, p3x, p3y = generateParameters ()
+ ellipse' p1x p1y m1 p2x p2y m2 p3x p3y |> ignore
+
+ sw.Stop ()
+ WriteLine (sprintf "New: time = %A ms" sw.ElapsedMilliseconds)
\ No newline at end of file