Bonjour à tous,

Je developpe sous XP sp2 32bit, avec visual 2005 et j'utilise ses MFC.
Mon application prend en entré un fichier, travail dessus, et me pond un fichier en sortie

Comme j'ai plein de fichier différents à traitier, j'ai voulu multithreadé, et donc lancer plusieurs de ces traitements de fichier, chacun dans un thread différent.

Je n'ai pas de probleme de synchro entre threads car ils travaillent vraiment chacun sur des fichiers différents, en entré comme en sortie.

dès que j'ai eu multithreadé la chose, j'ai commencé à avoir de grave probleme de performance. A savoir que pour traiter 2 fichiers en meme temps (par exmple) le temps total de l'opération doublait par rapport au temps unitaire de traitement de chaque fichier...

J'ai alors lancé plusieurs instance de mon application, et ne lancant cette fois ci, qu'un thread par application ( = par processus, si je ne m'abuse?)
et là, au mystere, chaque appli traite son fichier tres rapidement.

Donc voila ma question: qu'est ce qui pourait ralentir l'éxécution de plusieurs thread au sein d'un meme process?

j'ai suivis plusieurs piste, tout d'abord celle de l'utilisation intensive de container MFC (CListe, CMap) que j'ai remplacé par leur pendant de la STL, bof , le gain de temps fut négligeable.
Ensuite ( et là je suis tombé sur le cul) j'ai virer mes TRY/ CATCH (en majuscule hein, la version MFC toujours), et là, ôh bonheur, j'ai grandement réduit le temps d'éxécution des multiThreads au sein d'un meme process !!!
mais pas encore suffisament, ca reste inférieur au 4x 1process.

[edit1]
j'ai tenté de modifié le StackSize dans le lancement de mes threads par AfxBeginThread(), j'ai essayé plusieurs valeurs : 0 (par defaut) , 1Ko, 10 Ko, 1Mo. Rien n'y fait, les temps sont toujours aussi mauvais.
[\edit1]

voila, si quelq'un à la moindre idée, je suis interessé