VB.NETの速度についての疑問

解決


なお  2004-10-27 12:43:25  No: 86266

現在VC6で作ったDLLを、VB6で呼び出して動かしています。
http://www.cqpub.co.jp/hanbai/books/36/36951.htmの本を参考にしています
ここで問題になったのは、VB6の処理速度の遅さでした。
VC6で作ったDLLを呼び出すことで、VB6のみで作るよりも
処理速度が改善出来ているということですが、やはり
純粋にVC6のみで作るほうが速度は速いのです。

そこで質問なのですがVB.NETとVB6の処理速度の差はどの程度なのでしょう?

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200311/03110115.txt
>ただ、.NETのVBでは、その辺も他言語(C/C++など)と問題ない処理速度のようですね。

のように、処理速度はC++と遜色ないものになっているのでしょうか?
だとすれば、VB.NETのみでのOpenGL開発に希望が持てます。

あまりに漠然とした質問で申し訳ありません。
ご回答の程、よろしくお願いいたします。


岡田 之仁  2004-10-27 13:40:59  No: 86267

VC6で作成すれば、MFCを使わない場合、Win32 APIを直接呼び出す
ネイティブなコードを書けますので、当然、実行速度は一番速い
です。

.NET を使った場合、.NET Framework関係のDLLを経由しますので
ネイティブなコードよりは遅くなります。ですがVB6で書くより
も高速な処理が行なえるのは、私的には実感しており、また恩恵
も大きいと考えます。

どの程度の処理性能が欲しいのは漠然としていますが、OpenGLの
コードを書いたことがありますが、一般的には十分ではないで
しょうか・・・VC++にしないといけないのか、.NETでもOKなのか
の判断については、テストコードを書いて比較されるのをお勧め
します。

以上。


なお  2004-10-28 13:27:21  No: 86268

>岡田 之仁さん
回答ありがとうございます。
テストコードを書いて比較してみようと思います!!

少し話は逸れるのですが、VS6だとVBとVCの開発環境が
分離されていましたが、VS.netになって同一の環境下(.NET Frameworkのことですが…)
で開発できるようになりましたよね。
そこで思ったのですが、VCでDLLをわざわざ作らなくても、
同じ環境化にあるのだから、VCで作ったプログラムを
もっと効率よくVBで使うことは出来ないものかと考えました。
そういうテクニックっていうのはないのでしょうか?


ねろ  2004-10-28 18:25:20  No: 86269

VB.NETで書いてもC#で書いても.NET Framework のクラス ライブラリを
利用している限りスピードは速くなりません。
ただしVB.NETはポインターが使えないと思いますから、ポインター操作で
速くしたいと思うなら、多少の効果はあるかも。
本当に早くしたいのならC++でDLLを作るしか有りません。
.NETの体感速度は、C++に比べてかなり遅めです。


岡田 之仁  2004-10-28 18:26:57  No: 86270

私的には・・・
ややこしいもの(性能や機能面で)は、C#.NETで作成し、DLL化し
それをVB.NET側で参照設定して呼び出すという方法で行なってい
ます。
またソリューション内に複数のプロジェクトとして、DLL部を担う
プロジェクトやメインになるWindowsフォームのプロジェクトを
配置して、行っています。
ご参考までに・・・
以上。


なお  2004-10-29 02:56:53  No: 86271

>ねろさん  岡田 之仁さん

回答ありがとうございます。
結論としては、C++.NET or C#でDLL作って、VB.NETで呼び出すのが速い!
ということですね。
.NET Frameworkで開発環境を改善できると思っていたのですが、残念です。
とりあえず、VB6よりVB.NETの方が処理が速そうなので、
そっちを頑張ってみます!


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

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






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