2
IEnumerable.ToObservableが非常に遅いのはなぜですか?
私は大規模な列挙しようとしていますIEnumerable一度、および添付のさまざまな演算子(と列挙を観察しCount、Sum、Averageなど)。明白な方法は、それをIObservableメソッドToObservableでに変換し、オブザーバーをサブスクライブすることです。これは、単純なループを実行して各反復でオブザーバーに通知する、またはObservable.Create代わりにメソッドを使用するなど、他のメソッドよりもはるかに遅いことに気付きましたToObservable。違いはかなり大きく、20〜30倍遅くなります。それはそれが何であるか、または私は何か間違ったことをしていますか? using System; using System.Diagnostics; using System.Linq; using System.Reactive.Disposables; using System.Reactive.Linq; using System.Reactive.Subjects; using System.Reactive.Threading.Tasks; public static class Program { static void Main(string[] args) { const int COUNT = 10_000_000; Method1(COUNT); Method2(COUNT); Method3(COUNT); } static void Method1(int count) { var source = Enumerable.Range(0, count); var subject = new Subject<int>(); var …