自作関数の最適化で困っています。
研究目的のためのCコンソールアプリを書いているのですが、思ったように速度が出ず、頭を悩ませています。
もともとはSolaris+gccで作成していたのですが、VC++の方が速度が出ることがわかったため乗り換えたのですが、結果の違いに戸惑っております。
gccの時にはgprofがあったので助かっていたのですが・・・。
どなたかVCのプロファイラについてご存知の方がいれば、ご教授ください。
環境は、"Microsoft Visual C++ .NET2003"です。
よろしくお願いします
当方、VC++6.0とVC++7.0(.NET)が混在しているので、
不正確なんですが、
prep コマンドがあるはずです。
調べてみてください。
早速の返信ありがとうございます。
PATH通ってなかったので検索をかけたのですが、見つかりませんでした。
VC6(?)まではprep, plist等があったようですね。
メニューからもプロファイラが起動できたようで・・・。
REM 手動追跡&最適化しかないのかな・・・。
>> もともとはSolaris+gccで作成していたのですが、VC++の方が速度が出る
昔、Win95/VC++2.1 と Linux/gcc 2.7.2 を比較したことがあって、
同一マシンで、CPU は Pentium 166MHzでした。
strcat() を繰り返すプログラムで
gcc の方が2倍位はやかったのですが。
どのような比較基準なのか示してもらえるとうれしいです。
マシンの格差はありますが、
Blade100+Solaris+gcc2.95
Athlon1.4GHz+FreeBSD5.1+gcc3.3
Celeron1GHz+Windows2003+VC
といった環境です。
上から順に計算速度があがります。
また、計算速度のみを重視するのではなく、既存のアルゴリズムを改善するための意が強くあります。
そのため、二つのアルゴリズムの純粋な計算時間を比較しているのですが、Windows環境のみ一方の速度が落ちるという現象が起こりました。
また、内容については、バイナリデータをひたすらXORするプログラム(説明不足?)です。
#計算回数を半減させることにより、速度が向上する予定なのですが・・・。
情報ありがとう。
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からダウンロードできないかな。
追記
prepの方のポインタをたどったところ、perfmonにたどり着きました。
こちらの方を今調べております。
はい、どうやら無くなってしまったようですw。
URLの方は"msdn.microsoft.com"の名前が引けなくて・・・。
>> perfmonにたどり着きました。
それでよいならば
QueryPerformanceCounter()
QUeryPerformanceFrequency()
ですね。
LARGE_INTEGER
は __int64 をキャストして使用すると便利かと。
>> 名前が引けなくて・・・。
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
引けるようになっていました。
#さっきは全くDNSからのdig応答がなかったんですが。
QueryPerformanceCounter()
QUeryPerformanceFrequency()
これで解決しようと思います。
正直gprofみたいなプロファイラがなくて(びっくり&&残念)なのですが・・・。
なーめさん、ありがとうございました。
解決チェックボックス押し損ねました。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200411/04110081.txt
ご存知かとは思いますが、いちおうこちらも。
レス不要にて。では。
ツイート | ![]() |