13

Busco específicamente en la escritura de algunos algoritmos de procesamiento de señales en una u otra, o tal vez una combinación de ambos.¿Cuáles son los casos de uso de TPL flujo de datos sobre extensiones reactivas (Rx)

El rendimiento no es una gran preocupación, la claridad de expresar la intención es más importante.

estaría buscando para poner en práctica las siguientes 'bloques' y componerlos:

  • filtros (tanto FIR e IIR)
  • detectores de fase
  • Integradores
  • Mezcladores
  • Función generador
  • PLL (usando lo anterior como bloques de construcción)

Me sale que Rx puede considerarse como 'Linq-to-streams' y TPL es una abstracción sobre la concurrencia. También entiendo que Rx usa TPL internamente para administrar sus bits asíncronos y que el flujo de datos TPL agrega capacidad de compilación a TPL.

Así que ambos son asíncronas, ambos son componibles, ambos son bastante alto nivel (Rx Moreso). ¿Dónde debería usarse cada uno, tanto en general como en mis elementos de Procesamiento de señal?

+0

@Paul R Gracias por la edición, ¡no lo había notado! – stevenrcfox

+1

¡De nada! –

+0

@Overflow ¿se decidió por un enfoque? ¿Puedes decirnos qué es? – Asti

Respuesta

6

Depende del tipo de primitivas con las que se trate: Rx y TPL son mucho más ricas si utiliza tipos amplificados para enviar datos, pero si se trata de muestras individuales (como IObservable<byte>, ISourceBlock<float> etc.) podría ser tedioso trabajar con él.

Después de haber implementado recientemente un generador de funciones, FFT, cuantificador de espectros de potencia entre otros, comencé con Rx (este no fue el caso de concurrencia/paralelismo donde TPL sobresale), pero descubrí que pasé más tiempo tratando de hacer funciona en el modelo Rx - finalmente me conformé con System.Stream.

Funcionó bien para mí y era sorprendentemente composable. Sin embargo, el rendimiento y la evitación de GC fueron los primeros en mi lista, así que si no te molesta, sugiero Rx: puedes hacer algunas cosas realmente geniales con los combinadores reactivos.

Cuestiones relacionadas