Il seguente codice Rx.NET utilizzerà circa 500 MB di memoria dopo circa 10 secondi sulla mia macchina.Perché questo sovraccarico Observable.Generate causa una perdita di memoria? [Utilizzo dell'orario <15 ms]
var stream =
Observable.Range(0, 10000)
.SelectMany(i => Observable.Generate(
0,
j => true,
j => j + 1,
j => new { N = j },
j => TimeSpan.FromMilliseconds(1)));
stream.Subscribe();
Se uso il Observable.Generate
di sovraccarico senza Func<int, TimeSpan>
parametro mio utilizzo della memoria altipiani a 35 MB.
var stream =
Observable.Range(0, 10000)
.SelectMany(i => Observable.Generate(
0,
j => true,
j => j + 1,
j => new { N = j }));
// j => TimeSpan.FromMilliseconds(1))); ** Removed! **
stream.Subscribe();
Sembra essere solo un problema quando si utilizza SelectMany() o unione) metodi di estensione (.
Vedere http://stackoverflow.com/questions/41223723/observable-generate-with-timespan-selector-appears-to-leak-memory-when-using-a?noredirect=1&lq=1 per una spiegazione del perché Ho aggiunto la qualifica TimeSpan al titolo della domanda. –