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)