VC++プロファイラ

解決


よういち  2004-12-09 17:15:51  No: 55572

自作関数の最適化で困っています。

研究目的のためのCコンソールアプリを書いているのですが、思ったように速度が出ず、頭を悩ませています。
もともとはSolaris+gccで作成していたのですが、VC++の方が速度が出ることがわかったため乗り換えたのですが、結果の違いに戸惑っております。
gccの時にはgprofがあったので助かっていたのですが・・・。
どなたかVCのプロファイラについてご存知の方がいれば、ご教授ください。
環境は、"Microsoft Visual C++ .NET2003"です。

よろしくお願いします


なーめ  2004-12-09 17:24:14  No: 55573

当方、VC++6.0とVC++7.0(.NET)が混在しているので、
不正確なんですが、
prep コマンドがあるはずです。
調べてみてください。


よういち  2004-12-09 17:32:36  No: 55574

早速の返信ありがとうございます。
PATH通ってなかったので検索をかけたのですが、見つかりませんでした。
VC6(?)まではprep, plist等があったようですね。
メニューからもプロファイラが起動できたようで・・・。

REM 手動追跡&最適化しかないのかな・・・。


なーめ  2004-12-09 17:38:07  No: 55575

>> もともとはSolaris+gccで作成していたのですが、VC++の方が速度が出る
昔、Win95/VC++2.1 と Linux/gcc 2.7.2 を比較したことがあって、
同一マシンで、CPU は Pentium 166MHzでした。
strcat() を繰り返すプログラムで
gcc の方が2倍位はやかったのですが。
どのような比較基準なのか示してもらえるとうれしいです。


よういち  2004-12-09 17:54:10  No: 55576

マシンの格差はありますが、
Blade100+Solaris+gcc2.95
Athlon1.4GHz+FreeBSD5.1+gcc3.3
Celeron1GHz+Windows2003+VC
といった環境です。
上から順に計算速度があがります。
また、計算速度のみを重視するのではなく、既存のアルゴリズムを改善するための意が強くあります。
そのため、二つのアルゴリズムの純粋な計算時間を比較しているのですが、Windows環境のみ一方の速度が落ちるという現象が起こりました。
また、内容については、バイナリデータをひたすらXORするプログラム(説明不足?)です。
#計算回数を半減させることにより、速度が向上する予定なのですが・・・。


なーめ  2004-12-09 18:00:44  No: 55577

情報ありがとう。

prepですが。
当方、
X:\Program Files\Microsoft Visual Studio\VC98\bin\prep.exe
にありました。
prep,plist を google ですね。

VC7にはホントに無いようですね。http://homepage1.nifty.com/herumi/diary/0402.html
>> ちなみに{prep,profile,plist}.exeはVC6のみ付属でVC7.1にはついてない
VC5.0にも付いてますが。(^^;;
もしかしたら Editionによる?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_core_prep.asp

MSからダウンロードできないかな。


よういち  2004-12-09 18:00:56  No: 55578

追記
prepの方のポインタをたどったところ、perfmonにたどり着きました。
こちらの方を今調べております。


よういち  2004-12-09 18:04:36  No: 55579

はい、どうやら無くなってしまったようですw。
URLの方は"msdn.microsoft.com"の名前が引けなくて・・・。


なーめ  2004-12-09 18:07:07  No: 55580

>> perfmonにたどり着きました。
それでよいならば
QueryPerformanceCounter()
QUeryPerformanceFrequency()
ですね。
LARGE_INTEGER 
は __int64 をキャストして使用すると便利かと。


なーめ  2004-12-09 18:19:47  No: 55581

>> 名前が引けなくて・・・。
C:>nslookup msdn.microsoft.com
Server:  *
Address:  *

Non-authoritative answer:
Name:    msdn.microsoft.akadns.net
Addresses:  207.46.248.109, 207.46.196.115
Aliases:  msdn.microsoft.com


よういち  2004-12-09 18:36:06  No: 55582

引けるようになっていました。
#さっきは全くDNSからのdig応答がなかったんですが。

QueryPerformanceCounter()
QUeryPerformanceFrequency()
これで解決しようと思います。
正直gprofみたいなプロファイラがなくて(びっくり&&残念)なのですが・・・。

なーめさん、ありがとうございました。


よういち  2004-12-09 18:36:33  No: 55583

解決チェックボックス押し損ねました。


なーめ  2004-12-09 18:42:24  No: 55584

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200411/04110081.txt
ご存知かとは思いますが、いちおうこちらも。
レス不要にて。では。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加