Добавление опций grpof -pg делает мое многопоточное приложение не многопоточным - PullRequest
0 голосов
/ 28 ноября 2011

Я пытаюсь профилировать производительность для моего многопоточного приложения.

Поэтому я добавил опцию "-pg" при компиляции.

Я использую фиксированное количество потоков в пуле потоков: если будет 4 ядра ЦП, будет запущено 12 + 1 = 13 потоков.

Большим сюрпризом для меня является то, что после того, как я добавил опцию "-pg", запущен только один поток, а другие потоки не работают вообще (статус "S" в команде top).

top - 12:16:03 up 2 days, 21:46,  4 users,  load average: 1.02, 1.07, 1.32
Tasks:  13 total,   1 running,  12 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.6%us, 25.6%sy,  0.0%ni, 73.7%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   9224140k total,  5070060k used,  4154080k free,   214480k buffers
Swap:  9431164k total,        0k used,  9431164k free,  1722216k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3252 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.32 MyMultithreaded
 3251 plee      20   0 3111m 2.3g 3292 R   99 26.0  12:02.83 MyMultithreaded
 3250 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.01 MyMultithreaded
 3249 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:02.88 MyMultithreaded
 3248 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.12 MyMultithreaded
 3247 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.14 MyMultithreaded
 3246 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.46 MyMultithreaded
 3245 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.32 MyMultithreaded
 3244 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.16 MyMultithreaded
 3243 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.27 MyMultithreaded
 3242 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.12 MyMultithreaded
 3241 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:02.87 MyMultithreaded
 3240 plee      20   0 3111m 2.3g 3292 S    0 26.0   0:03.23 MyMultithreaded

Так есть ли какое-то решение для этого?

Имеет ли это какое-либо отношение к: http://sam.zoy.org/writings/programming/gprof.html

Спасибо.

Peter

1 Ответ

0 голосов
/ 30 ноября 2011

Я установил и попробовал OProfile, он работает нормально и может также дать вам результаты в стиле gprof.

...