VC 6 の頃はよく使っていたが…
VC 12 では何故かうまく動かなかった.
VC 14 で簡単に動作を確認すると,前より使い易くなっている.
メニューの「分析」-「パフォーマンス プロファイラー」.
「CPU 使用率」にチェックを付けて「開始」.
プロファイル用にビルドされて exe が起動する.
テストする操作を行い exe を終了させる.
暫くすると結果が表示される(この情報の見方はよくわからず).
CPU のグラフの下の「詳細なレポートを作成します…」を「クリック」.
上の方のドロップダウンから「関数」を選択.
表示された関数名のリストから関数をダブルクリック(ここでは CF_GetOuterLine ).
ちょっと意外だったが,Vd3A の代入に時間がかかっている.
2020/12/23
Vd3A の代入ではなく参照にコードを変更.
テストする exe も,もう少し機能を単純化したものを使用.
データにもよるが,該当部分の時間が半分位になった.
更にループ内の Vd3 も参照にしてみたが,こちらは効果なし.
typedef Vector3<double> Vd3 ; // 3D 座標 ( double の x , y , z ) typedef std::vector<Vd3> Vd3A ; // 3D 座標の配列
Vd3A は可変長で,メモリの確保と解放が伴うためと思われる.
* デバッグ版のため実際のコード(計測した Release 版)とは異なると思う.
[…] 先日使った VC のプロファイラがうまく動作しなくなった? 動作としては開始するが,結果が取れない. 「CPU 使用率」で,実行中のグラフは表示されている. 実行終了後,下の部分の関数名などが表示される所のデータがうまく生成されない? 次の様にやってもうまくいかない. MSDN クイック スタート: Visual Studio の CPU 使用率データの分析 (C++) 「手順 2: CPU 使用率データの分析」のデータが取れない. […]