- ベストアンサー
Visual Basic.NETの処理速度は6.0より遅い?
ある雑誌でVisual Basic.NETになってからC言語と同等の処理速度になったと書いてあるのを見ました。しかし、この間、会社に出入りのあるソフト会社から「Visual Basic.NETより、6.0の方が処理速度は速い」と聞きました。現在、私は.NETを使用しています。本当のところどっちが早いんでしょうか、どなたか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
参考書を読んだ限りでは、 ・開発環境でビルドした時点では、Exeファイルは中間コード (MSILと言うらしい) …これは、VBでもC#でもC++でもJ#でも、.NETである限り同じようです。 (でもせめてC++ぐらいは逃げ道があってもいいような…) ・起動された時点で、CLR(Common Language Runtime)のJIT (Just-In-Time)コンパイラで ネイティブコンパイルされた後に、 実行される …らしいので、少なくとも同様の機能を持ったアプリ同士なら、 起動速度に関して言えば.NETの方が明らかに遅いでしょうね。 実行速度については、正直コンパイラの最適化性能にも よると思うのですが、 今のところの私の体感的には、「どっこいどっこいか、または微妙に .NET(私が使用経験あるのは2005だけですが)が遅いかも? 処理にもよる?」 っていう感じでしょうか。 まぁ、実行時に(遅すぎて困らない範囲のスピードで)コンパイルする事を 考えれば、.NETのコンパイルの最適化は、VB6に比べると多少甘い「かも」 しれませんね。 ともあれ、あまり馬鹿デカいアプリを.NETで製作すると、起動が重くて 仕方ない状態になるかも。 つーかマイクロソフトは、将来的には一般ユーザにはネイティブコンパイル されたアプリは作らせないようにするつもりなんだろうか…? (C++とかの事情は、私は分からないんですけどね)
その他の回答 (3)
- don_go
- ベストアンサー率31% (336/1059)
VB6はOSが今よりも軽いOS時代の物で且つ機械語に直接 コンパイルできていたのに対し、.NETは.Net FrameWork が間に入る為、理論的には処理が増えた分だけ遅くなり がちです。 しかし、PCの性能向上によりその差分を埋められている ので処理速度は環境に大きく依存することになります。 昔のPCならVB6、最近のPCでCPUもメモリも十分にある 場合なら.NET
お礼
ありがとうございます。 確かにおっしゃるとおり。 PCの性能もずいぶんアップしてきました。 今後、システムに、CORBAの仕様を取り入れ組みなおそうとしています。 なかなか、中身までついていけません
- unamana19
- ベストアンサー率62% (56/89)
>この間、会社に出入りのあるソフト会社から「Visual Basic.NETより、6.0の方が処理速度は速い」 何を基準に"処理速度は速い"と認識したかによって、とらえ方は変わると思います。 確かにフォームの表示などは遅いと感じますが・・・ アセンブリのロードに時間がかかるの遅く感じるかもしれませんね。
お礼
ご回答、ありがとうございます。 ソフト屋さんは、ただ、漠然と処理が遅いと言っており、その表現はすべてについて劣っているような言いぶりでした。 きっと今のシステムを作り変えても金額的にメリットがあまりなく、面倒なことが多いから、そのようなことを言っているのかもしれません。われわれは素人なので適当に、出まかせを言っているような印象でした。 また、わからないことがあったら教えてください。
- okg00
- ベストアンサー率39% (1322/3338)
http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html 開発の仕方やコードの書き方でも変わるでしょうが、.netでも充分に早いというデータもあります。 しかし、Vistaで6.0はサポートされていますが次バージョンではどうなるでしょうね。
お礼
ご回答ありがとうございます。 okgOOさんの回答で案内してもらったURLを見ると、中間言語に置き換えてコンパイルしていることがわかりました。 またnge.exeでネィティブコンパイルすると中間言語に置き換えないので、立ち上がりも早くなることがわかりました。 ありがとうございました。また、よろしくお願いいたします。