- 1 名前:デフォルトの名無しさん mailto:sage [2005/04/12(火) 20:39:26 ]
- 前スレ
【Whidbey】Visual Studio 2005スレ【.NET 2.0】 pc8.2ch.net/test/read.cgi/tech/1080916113/
- 82 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 23:26:32 ]
- ございる
- 83 名前:71 mailto:sage [2005/05/14(土) 01:46:15 ]
- COMでいろいろ拡張できるね。よしよし
- 84 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 02:21:50 ]
- メールでフィードバック送ったら返事が来た。いいね
この調子でじゃんじゃんバグつぶすぞっと
- 85 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 05:55:23 ]
- >81
私も今年は見送って来年更新するつもりなのだが、Enterpriseが消えてしまうらしいので、どうしたものかと思案中。 Universalなんて要らないのに・・
- 86 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 17:17:35 ]
- やっぱだめだWindows Forms。
どうやっても腐ってる。
- 87 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 20:58:05 ]
- なにが?
おまいのプログラム?
- 88 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 21:25:13 ]
- >>87
とりあえず今日やろうと思ってできなかったこと。 ・ListView を Hottracking にする。 → True にすると HoverSelection も True にしなければならない。アホか! ・ContextMenu.Show に WebBrowser 渡すと Clik イベント発生しない。 → ContextMenuStrip を使います。
- 89 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 23:06:39 ]
- >>88
βテストなんだから、普通にフィードバックすればいい。
- 90 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 23:17:28 ]
- >>89
一応 Feedback Center 見たんだけど ttp://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=8de2e7bc-adb8-4d44-b581-140406575bc2 なんかなおす気ないらしい。 まぁ要望多ければ対応してもらえるかもしれないから送ってみるか。
- 91 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 20:59:40 ]
- 2003を買うと無料で2005にうpグレードしてくれるようなキャンペーンとか
やりそうですよね? 2003Professionalが欲しいんですけど、もうちょっと待った方が良いでしょうか?
- 92 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 15:06:18 ]
- VS2005の英語版届いた。こんなに遅く届くとは思わなかった。
後六日待てば日本語版付き雑誌が出るのに
- 93 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 19:55:56 ]
- C# 使ってデータベース使うソフトを試しに作ってみたんだけど、他にインストールしても例外エラーが出て動きません。
VB6 と DAO 使ってたのですが、今回は、SQLサーバーを使ってみました。 多分、SQLサーバーへの接続でエラーなんですけど、まっさらなマシンで動かすには、別にSQLサーバー2005をインストールしないといけないもんなんですか?
- 94 名前:デフォルトの名無しさん [2005/05/20(金) 21:26:32 BE:57845838-#]
- Visual C# 2005 Express Edition Beta 2 をインストールしている方にお聞きします
[File]→[New]→で表示される項目って[Project]しかありませんよね? Visual C+ 2005 Express Edition Beta 2 では [File]→[New]→で[Project][File][Project from existing code]の3つの 項目が表示されます。
- 95 名前:デフォルトの名無しさん [2005/05/20(金) 22:25:48 ]
- VC++.NET2003って
templateの部分特殊化がサポートされてないけど 2005ではどうなってます? しかしVC++7.1になってもtemplateまわりのバグが酷い・・ C++コンパイラはこれで買い収めだと思ってたのに・・
- 96 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:43:36 ]
- >>93
SQLサーバーが存在しないマシンでSQLサーバーにつながるわけないだろ!
- 97 名前:デフォルトの名無しさん [2005/05/22(日) 03:39:54 ]
- >>75
DOMの実装がほとんどないという意味なら確かにそうなんだけれど、 大概のことはHTMLDocumentとHTMLElementクラスでできるんじゃない? 足りなきゃ、HtmlDocument.GetElementsByTagName でHtmlElement取って DOMElementをmshtmlでキャストして従来どおりってやり方もできるし。 DocumentTextプロパティーで直接stringを流しこめるようになったので、 いちいちwebbrowser.Navigate("about:blank")→DocumentCompleteイベント 捕まえてDocumentを初期化しなくて済むようになったことだけとっても AxWebBrowserよりは楽になたと思うがなぁ…。
- 98 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 03:49:46 ]
- いいこと聞いた
- 99 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 05:07:11 ]
- もうハードディスクが過去のVisual Studioでいっぱいになる。
- 100 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 15:50:56 ]
- 捨てちまえ
- 101 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 16:03:07 ]
- くれ
- 102 名前:93 [2005/05/23(月) 11:47:57 ]
- SQLサーバー2005を既にインストールしたマシンが別にあって、そこにアクセスする形にできないかな?
理想としては、まっさらなマシンに、クリックオンワンスとかいうやつでセットアップを作って、それをインス トールすると SQLサーバー2005 にコネクトしてくれる環境ができてる、みたいなのがいいんだけど。
- 103 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:22:38 ]
- 整理がてらにMSDN事務局からのメールを見ていたらMSDNダウンロード
アクセス会員にはメディア送付はしないで、メディア会員には後日 メディアを送付すると書いてあったんですが、MSDNにダウンロードオンリーの サブスクリプションなんてあるんですか? MSDNサイトには見当たらないような。
- 104 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:46:12 ]
- オープンライセンスにはあるよ、メディアなし会員。
- 105 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 19:55:48 ]
- >>85
エンタープライズはサブスクリプションとしては微妙な位置付けでしたからね。ウチは SQLサーバーを使いたくてエンタープライズにしましたが他のサーバーソフトが全部手に入るわけでもないし、 ましてやOfficeも付かないし、コストパフォーマンスとしては一番悪かったように思います。 今度はプロでもSQLサーバーが付いてしまうので個人的にはますますエンタープライズの魅力が 無くなってしまって。エンタープライズを残すならせめてサーバーソフトを自由に選択出来るように してして貰いたいところですが、まあ、消えて無くなるのは仕方ないかなと。 でもVSのエンタープライズ版は何でも作れてちょっと便利。
- 106 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 13:22:20 ]
- Beta2 使用中
#if をちゃんと判断して色分けしていることに感動
- 107 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 22:19:57 ]
- 2003でもそうだったような・・・
- 108 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 23:36:26 ]
- 失礼、VC6からなんだ
- 109 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 03:08:37 ]
- C#の話でしょ?
- 110 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 15:04:22 ]
- C/C++です
- 111 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 16:02:13 ]
- >>106
#ifの色分け、しばらく使ってたけど切りました。 構成の切り替え時にもたつく感じだったので。 CPUは3GHz
- 112 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 17:56:13 ]
- Pen4だからじゃないの?
- 113 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 18:07:14 ]
- 関係ないでしょw
人間がそこまで感じるほどのもたつきは今のCPUじゃありえないでしょ。 ところで、VS2005のC#のりファクタ機能に感動した・・・・。 これC++用に実装してくれないかな? やってくれりゃ俺的神なんだが・・・
- 114 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 20:02:15 ]
- www.microsoft.com/japan/msdn/vs/vc/profileguidedoptimization.asp
VC8のガイド付き最適化、かなり神です。 でもこれってTeamSystemにしか付かないのかな? www.microsoft.com/japan/msdn/vstudio/2005/productinfo/productline/ のコード プロファイリングってやつのことだと思うんだけど、 だったら買えないよorz
- 115 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 21:22:25 ]
- プロファイラーはVC++6.0にもあったが、なぜか.NETでは廃止され、
また復活。
- 116 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 22:03:19 ]
- VC6のプロファイルってまともに使える?
- 117 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 22:27:29 ]
- Beta2買ってきた
- 118 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 12:44:27 ]
- ttp://download.microsoft.com/download/9/f/4/9f4d926f-0ca5-4c4c-9226-f5a61697fd97/vcsetup.exe
落ちないよウワァァァァァン
- 119 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 13:44:29 ]
- ベータのソフトを買うのもどうかしてるよな
ベータテスターを金払ってやってるのもどうかしてるよな ほんと、シェア握ると色々殿様商売始めるんだなぁ・・・・。
- 120 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 14:27:27 ]
- 変数名に日本語が使えるわけだが・・・
ググったら .NET からそうなのか。知らんかった
- 121 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 14:48:08 ]
- ?
昔から日本語は使えたと思うが。 まさか、"hoge"が英語だと思う馬鹿もおらんと思うが?
- 122 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 14:56:12 ]
- 馬鹿?
- 123 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 15:09:47 ]
- つかVBAとかでは昔から漢字が使えたわけだが
VBもそうじゃないか? .NETで変わったのってなんだよ。まさかC++じゃねえよな?
- 124 名前:120 mailto:sage [2005/05/29(日) 16:45:44 ]
- VC++の話。
×日本語 ○全角
- 125 名前:120 mailto:sage [2005/05/29(日) 16:48:32 ]
- .NET では無理ですね。
ごめんなさい
- 126 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 16:50:52 ]
- VC++を手に入れるのに
今2003を購入するか 2005を待って購入するか 迷ってます。 個人的にフリーウェア用プログラムを組むだけに使用するのですが、 結果的にどちらがよいでしょうか? (今2003を購入すると2005への無料バージョンUP権がついてくるような キャンペーンをやってくれるなら今すぐ購入しますけど)
- 127 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 16:57:08 ]
- >>125
2バイト文字が使えるってのはC++/CLIプログラムの話? それともUnManagedプログラムでも使える?
- 128 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 16:58:32 ]
- >>126
学生ならたった4000円で買えるから今の内に勉強したほうが良い(ManagedC++を使わない限り) 学生じゃないならexpressを待てば?
- 129 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 20:54:00 ]
- >>121
まさか、"hoge"が日本語だと思う馬鹿か?
- 130 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:45:00 ]
- #include <stdio.h>
int main(int argc, char** argv) { char* こんにちは、世界 = "Hello world!"; printf(こんにちは、世界); return (0); } 実行結果: Hello world! すげー違和感
- 131 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:54:29 ]
- CとかC++のシンボルに使える文字って規格で規定されてなかったっけ。
マネージドコードとの相互互換性のために拡張したのかな。
- 132 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 10:40:23 ]
- >>114
これって、コンパイルオプションの最適化でプロファイルデータを使うだけで、 TeamSystemのコードプロファイリングとは別物だと思う。 Beta1でも使用可らしんで試してみては? Express Editionだとわかんないけど。 >>116 VC6のプロファイラってほとんど役に立たなかった記憶がある。 CompuwareのTrueTimeが結構使えた。(高かったけど)
- 133 名前:114 mailto:sage [2005/05/30(月) 16:09:48 ]
- >>132
別物なんだ。情報アリガト。 ガイド付き最適化はStandardでも付くのかな? ものによっては+30パーセントとか速くなって驚いた。
- 134 名前:132 mailto:sage [2005/05/30(月) 20:27:26 ]
- >>133
ttp://www.microsoft.com/japan/msdn/vstudio/2005/express/faq/default.aspx#visualc ↑のQ&Aで答えがありました。 Q. Visual C++ 2005 Express Edition には "最適化コンパイラ" は含まれますか? A. Profile Guided Optimization (PGO) など、拡張された新しい最適化機能の一部は Visual Studio 2005 の Professional 以上のエディションでしか使用できない ということなので、Standardには付かないようです。
- 135 名前:114 mailto:sage [2005/05/30(月) 20:41:44 ]
- >>134
どうもです。 Standardの位置付けって、Expressの各言語をまとめたものなのかな…orz VC8に特化したフル機能バージョン欲しいっす。
- 136 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 12:48:12 ]
- 入手方法
Web ダウンロード 『C Magazine 7 月号』 (ソフトバンク・パブリッシング、2005 年 6 月 18 日 発売予定) 『日経ソフトウエア 8 月号』 (日経 BP 社、2005 年 6 月 24 日 発売) これ以外にも付録としてつけた雑誌があるような話を見た気がするのだが 誰か情報を持ってませんか?無いなら無いで待つので。
- 137 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 12:56:42 ]
- >>136
これ買いました。定期雑誌じゃないけど。内容はSQLサーバー寄り? 『完全詳説! Visual Studio 2005 & SQL Server 2005』 (日経 BP 社、2005 年 5 月 23 日 発売予定)
- 138 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 14:42:57 ]
- >>137
ありがとうございます。自分もそれを購入しようと思います。
- 139 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 22:28:33 ]
- >>137
本は大した事書いてなかったな
- 140 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 23:10:00 ]
- >>135
VC++ExpressにはつかないMFCとATLが付くんじゃないのか? 単体販売でのVC++ with MFC+ATLはなくなる これは抱き合わせ販売で独占禁止法に抵触しないんだろうか 公正取引委員会の活躍に期待する(マジに・・・)
- 141 名前:114 [2005/05/31(火) 23:36:59 ]
- >>140
ExpressにMFCないのか… それで思い出したんだけど、VC6からコンバートしたMFCプロジェクトで、 ヘルプ生成ツールの一部がVS2005TSには無くなってた気がする。 hcwってやつ。 VC6入れっぱなしならそっちが使われるので問題ないんだが。
- 142 名前:デフォルトの名無しさん [2005/05/31(火) 23:39:51 ]
- >>139
DVD目的オンリーです。SQLはよく知らない…
- 143 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 23:40:38 ]
- >>139
DVD目的オンリーです。SQLはよく知らない…
- 144 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 23:51:44 ]
- 抱き合わせもなにも、MFC や ATL は単に MS が作成した Win32 のラッパ・ライブラリで
あって、嫌なら自分で作れよって言われてお終いだろ そんなので独禁食らうなら、某のVCLとかも駄目だし SUNやIBMも自社製UNIXのコンパイラは有料だし、Motif もただじゃない
- 145 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 23:55:49 ]
- マジレスですか
- 146 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 02:21:42 ]
- >>139
というか開発者のオナニー話が多い気がした
- 147 名前:デフォルトの名無しさん [2005/06/01(水) 11:57:42 ]
- まだ出ないのか!2005年はもうすぐ折り返しちゃうよ。
- 148 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 12:07:47 ]
- そういえば日本語Windows95は11月終わりごろだったっけ
- 149 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 12:57:04 ]
- >>134
VSはサービスパックを出す時にコンパイラもアップデートしている。 つまり、Pro用のサービスパックが出たら解凍し、中にコンパイラ があったらそれをコピーすれば良い。オプションは手打ちで設定。 もっとも、サービスパックが出るまで待たないといけないが。
- 150 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 12:57:27 ]
- 使っていて戸惑ったことないですか?VC8に関してだけですが、
・wchar_tが組み込み型に→過去のライブラリがリンク不可 ・for int i のスコープの変更→過去のソースが一部コンパイル不可 ・time_tの64ビット化→過去にファイルセーブしたものと不整合(β1で確認) 上記はβ2ではスイッチとdefineで過去の仕様に戻せました。 戻すことができるのなら、タイミング的にはデフォの仕様を変えるのは頃合かな、と思います。
- 151 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 13:16:40 ]
- 少なくともforのスコープ問題は標準からはずれてたのが直ったので
これでいいのだ
- 152 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 14:07:15 ]
- 仕様変更とは違うんだけど、相変わらず日本語が化ける模様。
化ける文字列の上に空行を入れたり入れなかったりで症状が変わるが、 今のところこうすれば必ず回避できる、というのは分からないですね。 製品開発してもいいとは言っても、これはちょっと使いにくい…。 文字化け対策、うまいことやっている人、居ませんか? ちなみにモードはマルチバイト(SJIS)です。
- 153 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 14:08:00 ]
- 標準そのものが追加されたんじゃなかったか
- 154 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 14:08:04 ]
- うむ。そんなコード書くほうが悪い。
- 155 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 16:26:30 ]
- みっともないけど、
for (int ・・・ をさらに {} でくくってたりしてみたこともあったとかなかったとか
- 156 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 17:14:21 ]
- >>155
手っ取り早く他の環境へ移動したいときはそれやったことあります。 ちなみに、forのスコープ変更で引っかかったのは、MSのソースです(笑) たしかDirectXのサンプルか何かだった。
- 157 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 20:58:43 ]
- >>116
VC++6.0のプロファイラは関数の実行時間とかの一覧が沢山出て来るけど、 だからどうした?という感じな代物。無いよりマシだが、所詮はオマケ機能だな。
- 158 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 21:40:56 ]
- >>157
対してVC8のは本物ですね。 性能もインテルコンパイラより、サイズ、速度とも上だと思う。 つーかインテルのは元から吐くのがでかすぎ…(Qax無しでもなんであんなにでかいんだろ?)
- 159 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 21:57:56 ]
- >>158
VC8そんなに凄いのか… ここまで遅らせただけの事はあるようだな
- 160 名前:デフォルトの名無しさん [2005/06/01(水) 22:09:12 ]
- VS2005ベータ2入れたら、VC++2003でmakeが出来なくなった。。。
error PRJ0003 : cl.exe' の起動中にエラーが発生しました。 とか出る。。。 共存不可なのか? ちなみに雑誌で入手したベータ版
- 161 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 22:29:14 ]
- >>160
役に立たない情報ですが、VC6とは完全に共存しています。 ちなみに.NETは見送ったくちです。TK2003でコンパイラだけは使ってましたが。
- 162 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 22:36:52 ]
- VS2006に期待!
- 163 名前:デフォルトの名無しさん mailto:sage [2005/06/01(水) 22:45:01 ]
- >>162
同意、毎年アップデートだ。もちろん有料!
- 164 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 13:12:19 ]
- >>114
それってMVC7でも、inline関数をヘッダに書く必要なかったってこと? うへぇ知らんかった。でもイイねソレ
- 165 名前:114 mailto:sage [2005/06/02(木) 13:29:50 ]
- >>164
ごめん、コメントの意図がわかんないです inlineとガイド付き最適化って何も関係ないと思う
- 166 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 13:46:34 ]
- >>114のリンク時コード生成 (LTCG)の説明に
>たとえば、従来のコンパイルおよびリンクを行う際、 >コンパイラは関数をソース ファイル foo.cpp からソース ファイル bar.cpp にインラインできませんでした。 とある。これから考えるにインライン関数をヘッダにじゃなくてCPPファイルに書いた場合でも ちゃんとインライン展開してくれるんじゃないのか?
- 167 名前:114 mailto:sage [2005/06/02(木) 14:07:38 ]
- >>166
おっしゃるのはリンク時の大域最適化(WPO?)ですね。 それはガイド付き最適化(PGO)とは別物(内部的には無関連ではないらしいけど) WPOはVC7にもあって、ファイルをまたいだインライン展開やレジスタ割付の最適化を行うもの。 PGOはさらに、実行時の情報を集めて(一度ユーザーがアプリを操作する)、頻繁に通るコードを 条件分岐の前に持ってきたり、呼び出される関数と呼び出し側を近くに配置してキャッシュ効率を あげたりするものらしい。 言うのは簡単だが、実際すごい技術だと思う。ものによるが、ほんとに+30%、WPOの段階から さらに早くなる。
- 168 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 14:36:27 ]
- >>166
しかも、プロファイル情報に基づいてinline展開するか決めてるようなんで、 OBJファイルごとにinlineするかしないかが変わるってことだから これからのソースは、ちょっと大きめの関数はinlineしないほうがいいのかも。 あと、なんか勘違いしている人がいそうなんで説明 普通にプロファイラというと 実行時にある関数がどれだけ呼び出されて、CPUをどれくらい使っているかを調べるソフト。 これでネックになっている関数を調べ、その呼び出す回数を減らしたり、アルゴリズムを決めるのに使う。 実行はプロファイル用にコンパイルした実行ファイルを使う。 もちろん、計測する処理が入るので実行時間は長くなり、 これを実行したからといってプログラムが速くなるわけではない。 ちなみに、VC++6.0のプロファイラは実行時間は一瞬だが全く役に立たなかったと思う。 最適化コンパイラのPGOは 簡単に言うと、ある関数をインライン展開するかどうかを決めるため方法で、 たくさん呼ばれている関数はインライン展開し、 ほとんど呼ばれない関数はインライン展開しないというものだと思う。 ただ、実行時のパラメータによって呼び出し回数は変化すると思うので すべての条件で高速化につながるとは限らない気がする。 あと、最適化には速度とファイルサイズサイズの最適化があり、 両者はトレードオフの関係にあると言われている。 PGOは両者のバランスを考えて最適化を行っている。 間違っていたら訂正よろしく。
- 169 名前:168 mailto:sage [2005/06/02(木) 14:53:46 ]
- >>167
説明を詳しく見てませんでしたが、.pgcファイルってのを作って これを元にアプリを試験実行してから再リンクするようですね。 そして、実行にかかる時間が異なる 2 つのシナリオがある場合、 重み付けで調整まで出来るらしい。 コンパイラもここまできたのかって感じがする。
- 170 名前:114 mailto:sage [2005/06/02(木) 14:54:27 ]
- >>168
間違い指摘じゃないけど、使った感触からの想像では、PGOで速くなってる 要因はinlineよりも別の要素が大きいんだと思う。 inlineがメインだったら、WPOの状態からとさほど変わらないんじゃないかと。 コンパイラの挙動を覗いたわけじゃないから正確かどうかはわかりませんが。
- 171 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 15:02:12 ]
- さらに追記すると
プロファイラはVisual Studio 2005 Team System Developer に付き 最適化コンパイラ(PGO)はVisual Studio 2005 の Professional 以上に付く
- 172 名前:114 mailto:sage [2005/06/02(木) 15:06:01 ]
- >>169
難点があるとすればやはり多少めんどくさいこと。 インストルメントでコンパイルしなかったやつは(単にLTCGだけとか) すでにあるPGOの情報を利用できないもよう(関数名の呼び出し回数だけ じゃなくて、きっと条件分岐単位とかで実行回数とか関数内でさらに細か く数えてるんでしょう) 仕方ないのかも知んないけど、PGOがもっと自在に適用できるようになれば 便利かなあ… それと、結果が毎度安定しない(速度的にはともかく、サイズがころころ変わる) 一度作ったビルドの出力結果は、関係ないところをちょっと変えただけでもう一生 得られない…
- 173 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 15:10:47 ]
- >>170
私の経験だと 関数の中でif判定し直ぐにreturnする場合と 関数を呼び出す直前でif判定するのでは、 呼び出す回数によってはかなりパフォーマンスに影響した経験があり、 関数呼び出し時のオーバーヘッドは以外に馬鹿に出来ないと思っていたので、 インラインの影響が大きいのかと思ったんですが、 他にも何かあるんですかね。 Beta版は調子が悪くなると困るんで入れてないんですよ。
- 174 名前:173 mailto:sage [2005/06/02(木) 15:18:44 ]
- このスレはIDでないんですね。
一応、以下のが私のコメントです。 >>132,>>134,>>168,>>169,>>171,>>173
- 175 名前:114 mailto:sage [2005/06/02(木) 15:26:03 ]
- >>173
>関数の中でif判定し直ぐにreturnする場合 これはスタティックな解析での最適化でもある程度できる気がします。 (関数の先頭に近いifを呼び出し側に埋め込めばよい。LTCGでやってる かどうかはわかりませんが) 対して if(a){ } else if(b){ } では、a,bどっちが多いのかは実行時までわからない。 で、実際に実行させてみてbがaより多かったら、上下 入れ替えてしまうのがPGO、というのが私の認識。 if や case がたくさんあるときは利いてくると思う。 最近のCPUって分岐ペナルティでかいって言うし。 まあ、こんな単純なケースだと気の利いたプログラマならベター ケースでコーディングしているだろうけど、機械が力まかせにや るのには及ばないんじゃないかな。しかもプログラム全体にまた がってときた日にゃぁ…
- 176 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 15:31:59 ]
- Beta2のセットアップ画面にずっと写ってるあの緑色の服を着た若い黄色人種は
いったい誰なのだ。
- 177 名前:114 mailto:sage [2005/06/02(木) 15:45:25 ]
- >>173
>Beta版は調子が悪くなると困るんで入れてないんですよ。 ここ読んでたら、VS.NET使用環境には入れないほうが良さそうですね。 >>160 >>161 とはいえ、おもちゃとしてはとても面白い。 β1に比べてひと回り落ち着いているし。 でも日本語化けるのだけは何とかしてほしい…orz
- 178 名前:173 mailto:sage [2005/06/02(木) 15:47:10 ]
- >>175
その通りですね。 あとはある関数が100箇所から呼ばれていて ある条件では、そのうちの3箇所が膨大な回数呼ばれるが 残りの97箇所はたいしたことがない。 しかし、条件を変えると 別の3箇所が膨大な回数呼び出されるといった場合 合計6箇所をインラインし 残りはインラインしない なんてこともやってくれると思った。 この場合100箇所全部インラインするのは明らかに無駄 >こんな単純なケースだと気の利いたプログラマならベター ケースでコーディングしているだろうけど 開発人数が増えるとかなりの個人差が…。
- 179 名前:114 mailto:sage [2005/06/02(木) 15:55:30 ]
- >>178
>この場合100箇所全部インラインするのは明らかに無駄 ひとつ賢くなりました。部分インライン展開って言うのかな? 人の手じゃできませんねえ。 技巧的なところでは人の書くasmのほうが速くても(手動パイプライニングや パーシャルストールなんかは人力でも当然考慮する) 量が絡んだ広域 最適化ではコンパイラのコードの独壇場という時代になりそうですね。
- 180 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 16:40:28 ]
- >177
UNICODE 設定以外使ってないけど、日本語化けたことないよ?
- 181 名前:デフォルトの名無しさん mailto:sage [2005/06/02(木) 16:47:49 ]
- うちも化けない
XP + Beta2
- 182 名前:114 mailto:sage [2005/06/02(木) 17:02:15 ]
- >>180 >>181
確認だけど、UNICODEで「使ってる」ということ? こっちはマルチバイトです。XPSP2+β2 参考までに、ソースの規模は? 今数えたら4.5MBでした。
|

|