Bonjour,
Voici un bout de code que je link de 2 facon différente avec le dernier mingW, gcc4.4.1 sous windows
Alors dans mon example j'utilise OpenMP mais si c'était des pthreads le comportement serait le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for (int k=0;k<=100000;k++) { for (int j=1;j<=8;j++) { omp_set_num_threads(j); int h=0; #pragma omp parallel for reduction(+:h) for (int i=0;i<1000;i++) { h++; } if (h==100) printf("%d",h); } }
Si je link avec l'option "-mthread" et je que je met la dll "mingwm10.dll" tout se passe bien
Maintenant si je link en static avec "libmingwthrd.a" + "libmingw32.a", la mon programme grossis de plus en plus en mémoire et c'est liée au fait que je change le nombre de threads actif par la fonctrion openMP omp_set_num_threads(). Je ne sais pas exactement ce qui se passe mais quand le pools de threads change de taille quelquechose n'est pas d'ésaloué. Et ca va trés vite ~120 octect par thread.
J'ai peu d'espoir que quelqu'un ait déjà été confronté à ca, mais sait-on jamais
Partager