- PR -

プロファイリング用語の意味

1
投稿者投稿内容
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2008-08-11 19:26
プロファイリング用語について教えてください。
解説を読んでも(1)(2)(3)の違いが理解できません。
(1)(2)(3)はどう違うのでしょうか?
また、その違いををどう解釈すれば良いでしょうか?

(1)関数ビューの経過時間
(2)関数ビューのアプリケーション時間
(3)概要ビューの個別作業が一番多い関数


MSDN関数ビュー
http://msdn.microsoft.com/ja-jp/library/ms242735(VS.80).aspx


MSDN概要ビュー
http://msdn.microsoft.com/ja-jp/library/ms242741(VS.80).aspx
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2008-08-12 09:17
こんにちは。

引用:

ひろしさんの書き込み (2008-08-11 19:26) より:
プロファイリング用語について教えてください。
解説を読んでも(1)(2)(3)の違いが理解できません。
(1)(2)(3)はどう違うのでしょうか?
また、その違いををどう解釈すれば良いでしょうか?

(1)関数ビューの経過時間
(2)関数ビューのアプリケーション時間
(3)概要ビューの個別作業が一番多い関数

MSDN関数ビュー
http://msdn.microsoft.com/ja-jp/library/ms242735(VS.80).aspx


MSDN概要ビュー
http://msdn.microsoft.com/ja-jp/library/ms242741(VS.80).aspx



ここも読まれていて、理解できないということでしょうか?

MSDN パフォーマンス用語の理解
http://msdn.microsoft.com/ja-jp/library/ms242753(VS.80).aspx
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2008-08-12 11:26
ご回答ありがとうございます。

> コードの直接実行にかかった時間
> コードの実行にかかったシステム時間
の違いの理解に自信が持てません。そこで、私の理解している内容について(1)(2)(3)に記載します。誤りなどご指摘いただければありがたいです。

(1)「コード実行にかかったシステム時間=コードの直接実行にかかった時間+遷移イベントにかかった時間」

(2)経過時間、アプリケーション実行時間の両方とも(CPUサイクルを消費しない待ち時間などは除外され)実際に消費されたCPUサイクルタイムの累計である。

(3)直接間接を問わずCPUにどの程度負荷がかかるかを見るためにはアプリケーション実行時間に着目する。リファクタリングでソースコードのチューニング効果を評価する場合は経過時間に着目する。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2008-08-12 13:02
こんにちは。

私のところにはVisualStudioTeamSystemもありませんしこのプロファイラ使ったことありません。
MSDNのドキュメントの内容からの私の解釈なので間違っていたらごめんなさい。

引用:

ひろしさんの書き込み (2008-08-12 11:26) より:
(1)「コード実行にかかったシステム時間=コードの直接実行にかかった時間+遷移イベントにかかった時間」


先に示しましたリンク先の説明から、

「経過時間」 = 「アプリケーション時間」+ 「遷移イベント」
「アプリケーション時間」・・・プロファイリングしたコードの直接実行にかかった時間
「遷移イベント」・・・プロファイリングの対象アイテムの一部ではないスレッドに費やされた時間やオペレーティング システムへの呼び出しの実行にかかった時間

のようです。

引用:

(2)経過時間、アプリケーション実行時間の両方とも(CPUサイクルを消費しない待ち時間などは除外され)実際に消費されたCPUサイクルタイムの累計である。



パフォーマンス ツールの使用上のガイドライン(MSDN)より
引用:

実行中のスレッドだけがサンプリングされます。I/O、ミューテックス、セマフォ、またはイベントの待機中にブロックされたスレッドのデータは収集されません。中断されているスレッドは CPU を消費せず、サンプリングされません。


とあるので、「アプリケーション時間」には、待機中の時間は含まれていないと思いますが、
「経過時間」のほうには、プロファイル対象外の実行時間も含まれるのではないでしょうか!?

引用:

(3)直接間接を問わずCPUにどの程度負荷がかかるかを見るためにはアプリケーション実行時間に着目する。リファクタリングでソースコードのチューニング効果を評価する場合は経過時間に着目する。



一概に言えないのでは?各プロファイル情報から、なにがボトルネックなのか判断しないと。
オペレーティング システムの呼び出し(I/O関連など)がボトルネックになっているのであれば、できるだけ呼び出し回数を減らすとか…

あと、一般にいう「リファクタリング」とは、パフォーマンスチューニングとは違いますよね!?というか、パフォーマンスがやや劣化することが多い!?

ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2008-08-13 09:23
ご回答ありがとうございます。

うっかり別物であるリファクタリングとパフォーマンスチューニングを混同してしまいました。



1

スキルアップ/キャリアアップ(JOB@IT)