X-Git-Url: http://git.euphorik.ch/?p=master-thesis.git;a=blobdiff_plain;f=Parasitemia%2FTests%2FParasitemiaCore.Benchmark%2FEllipsesBench.fs;fp=Parasitemia%2FTests%2FParasitemiaCore.Benchmark%2FEllipsesBench.fs;h=33ce74593a4db918a013dfeafaeceaba0fb5ec0b;hp=0000000000000000000000000000000000000000;hb=2e029053d283ce141ce9870336cb9574ea4a203a;hpb=8866c578f1210295bdcf04c8212eae81d52d630a diff --git a/Parasitemia/Tests/ParasitemiaCore.Benchmark/EllipsesBench.fs b/Parasitemia/Tests/ParasitemiaCore.Benchmark/EllipsesBench.fs new file mode 100644 index 0000000..33ce745 --- /dev/null +++ b/Parasitemia/Tests/ParasitemiaCore.Benchmark/EllipsesBench.fs @@ -0,0 +1,42 @@ +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