J'ai une machine CPU 8 cœurs avec 8 Go de mémoire. Logiquement, le code suivant peut être fait en parallèle, mais puisque la boucle expose plus qu'assez de possibilités pour le parallélisme puisque j'ai beaucoup moins de cœurs disponibles que la taille de la boucle. Deuxièmement, chaque expression de délégué alloue de la mémoire pour contenir les variables libres. Est-il recommandé d'utiliser parallèle pour dans ce cas?Utilisation de la parallélisation pour des boucles relativement grandes
va également séparer les 2 parallèles pour en 2 tâche améliorer la performance dans ce cas ??
private static void DoWork()
{
int end1 = 100; // minimum of 100 values;
int end2 = 100; // minimum of 100 values;
Task a = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end1, delegate(int i)
{
// independent work
});
}
);
Task b = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end2, delegate(int i)
{
// independent work
});
}
);
a.Wait();
b.Wait();
}
cela dépend de la granularité de « travail » –