Pregunta

Hacer los métodos paralelos paralelos y paralelo.

¿Proporcionar internamente su propio equilibrio de carga y partición para funcionar mejor?

Si es así y ¿qué circunstancias desea escribir, cree sus propias particiones usando la clase Parcionista para mejorar el rendimiento?

¿Fue útil?

Solución

Las rutinas dieron su propia partición.

Se basan en escenarios "típicos", pero ocasionalmente pueden requerir orientación, particularmente en situaciones inusuales.

Por ejemplo, la partición predeterminada para IEnumerable<T> implementaciones (que no implementan IList<T>) Comenzará con un grupo pequeño por tarea y crecerá lentamente en tamaño. Sin embargo, si conoces tu IEnumerable<T> va a alimentar lentamente un elemento a la vez, esto causará un bloque, como el Parallel La clase "esperará" en el siguiente elemento hasta que reciba suficientes elementos para una partición y lo programará.

Al proporcionar su propio particionador, puede evitar esto y obtener un mejor rendimiento.

Otro gran ejemplo de dónde ayuda un particionador personalizado es si tiene cantidades muy pequeñas de trabajo por elemento de bucle. En este caso, la división y trabajar en la partición evita una sobrecarga innecesaria. Esto está cubierto en el Cómo: acelerar los cuerpos de bucle pequeños Página en MSDN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top