私の C++ プログラムは大量の CPU を消費しており、実行するとさらに消費します。Google Performance Tools を使用して CPU 使用率をプロファイリングしたところ、次の結果が得られました。
(pprof) top
Total: 1343 samples
1330 99.0% 99.0% 1330 99.0% 0x0000000801dcb11c
7 0.5% 99.6% 7 0.5% 0x0000000801dcb11e
4 0.3% 99.9% 4 0.3% program::threadWorker
1 0.1% 99.9% 1 0.1% 0x0000000801dcb110
1 0.1% 100.0% 1 0.1% 0x00007fffffffffc0
ただし、ここに示されている 5 つのプロセスのうち、実際の関数名は 1 つだけです。残りはアドレスです。これらのアドレスが何に関係するかを知るにはどうすればよいですか? (もちろん、私が最も興味を持っているのは、上記の最初のアドレスです)
編集:これは私がプロファイラーを実行した方法です:
env CPUPROFILE=prof.out ./a.out
[kill program]
pprof ./a.out prof.out
また、コードインスペクションで根本原因を突き止めました。しかし、プロファイラーがアドレスではなく原因関数を正確に特定できるようにするとなお良いでしょう。