11#if INTERACTIVE
2+ #if COMPARE_ TO_ OLD
3+ #r @" ../../packages/FSharp.Control.AsyncSeq/lib/net40/Fsharp.Control.AsyncSeq.dll"
4+ #else
25#r @" ../../bin/FSharp.Control.AsyncSeq.dll"
6+ #endif
37#r @" ../../packages/NUnit/lib/nunit.framework.dll"
48#time " on"
59#else
@@ -708,36 +712,38 @@ let ``asyncSeq.For should delay``() =
708712
709713
710714
715+
711716let empty = async { return () }
712717let perfTest1 n =
713718 Seq.init n id
714719 |> AsyncSeq.ofSeq
715720 |> AsyncSeq.iterAsync ( fun _ -> empty )
716721 |> Async.RunSynchronously
717722
718- // n OLD NEW
719- //perfTest1 1000 - 0.244 0.001
720- //perfTest1 2000 - 0.922
721- //perfTest1 3000 - 2.091
722- //perfTest1 4000 - 3.811
723- //perfTest1 5000 - 6.311
724- //perfTest1 6000 - 10.071 0.006
725- //perfTest1 10000 - 38..0 0.012
726- //perfTest1 100000 - 0.129
727- //perfTest1 1000000 - 0.708
723+ // n NEW 1.15.0
724+ //perfTest1 1000 - 0.001 0.004
725+ //perfTest1 2000 -
726+ //perfTest1 3000 -
727+ //perfTest1 4000 -
728+ //perfTest1 5000 -
729+ //perfTest1 6000 - 0.006 0.020
730+ //perfTest1 10000 - 0.012
731+ //perfTest1 100000 - 0.129 0.260
732+ //perfTest1 1000000 - 0.708 2.345
733+
728734
729735let perfTest2 n =
730736 Seq.init n id
731737 |> AsyncSeq.ofSeq
732738 |> AsyncSeq.toArray
733739
734- // n OLD NEW
735- //perfTest2 1000 0.227 0.038
736- //perfTest2 2000 0.905 0.001
737- //perfTest2 3000 2.154 0.004
738- //perfTest2 4000 3.757
739- //perfTest2 5000 6.197
740- //perfTest2 10000 38.197 0.007
740+ // n NEW
741+ //perfTest2 1000 0.038
742+ //perfTest2 2000 0.001
743+ //perfTest2 3000 0.004
744+ //perfTest2 4000
745+ //perfTest2 5000
746+ //perfTest2 10000 0.007
741747//perfTest2 100000 0.076
742748//perfTest2 1000000 0.663
743749
@@ -755,12 +761,29 @@ let perfTest3 n =
755761 |> AsyncSeq.toArray
756762
757763
758- // n OLD NEW
764+ // n NEW 1.15.0
759765//perfTest3 1000 0.003
760766//perfTest3 2000
761767//perfTest3 3000
762768//perfTest3 4000
763769//perfTest3 5000 0.009
764770//perfTest3 10000 0.015
765771//perfTest3 100000 0.155
766- //perfTest3 1000000 1.500
772+ //perfTest3 1000000 1.500 3.480
773+
774+ let perfTest4 n =
775+ Seq.init n id
776+ |> AsyncSeq.ofSeq
777+ |> AsyncSeq.map id
778+ |> AsyncSeq.filter ( fun x -> x % 2 = 0 )
779+ |> AsyncSeq.toArray
780+
781+ // n NEW 1.15.0
782+ //perfTest4 1000
783+ //perfTest4 2000
784+ //perfTest4 3000
785+ //perfTest4 4000
786+ //perfTest4 5000
787+ //perfTest4 10000
788+ //perfTest4 100000 0.362 0.442
789+ //perfTest4 1000000 3.533 4.656
0 commit comments