2011-11-01 3 views
0

L'utilisateur a maintenant lancé la fonction "Convertir tout", il devrait exécuter un processus séparé pour chacun d'eux.Exécuter un lot de processus: asynchrone ou continu?

Quelle est la méthode recommandée, les convertir les uns après les autres, ou lancer un thread de conversion séparé pour chacun des éléments permettant à tous les processus de fonctionner simultanément?

Ma question est, peut-être parce qu'il y a trop de progrès à la fois, tous travaillent plus lentement, ce qui pourrait être mieux de les convertir un par un? Quelle est l'approche la plus efficace?

+0

La réponse peut dépendre de ce que fait cette fonction "convertir tout". –

+0

@JohnSaunders, Cette fonction devrait être responsable qu'un certain processus est démarré pour chacun des éléments (chaque élément avec un processus séparé). – Shimmy

+0

De combien de processus parlons-nous? Allons-nous utiliser un processeur multicœur ou essayons-nous d'étrangler un téléphone Windows 7? Combien de temps chaque processus devrait-il fonctionner? – Carth

Répondre

2

La réponse à cette question est très spécifique à la nature du traitement (elle dépend fortement des goulots d'étranglement, des ressources partagées, etc.). Vous seul pouvez répondre à la question en écrivant dans les deux sens et en utilisant un profileur pour mesurer la performance.

+0

Ce qui signifie que les deux moyens peuvent être considérables. Je veux m'assurer que je ne fais rien de mal. – Shimmy

1

Cela dépend de la charge de travail de la conversion que vous essayez d'obtenir. Vous pouvez adopter une approche plus équilibrée en limitant la taille de votre pool de threads. Il faut des tests pour voir quelle est la meilleure configuration.

Questions connexes