掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.NETの演算速度がVB6よりも遅いのを解決するには? (ID:117362)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。私は大学の研究室で現在ちょっとした電磁界の シミュレーションプログラムを作っているのですが、VB6からVB.NET2003に乗り換えたところ、 実行速度が2〜3分の一程度にまで遅くなってしまったので、 皆さんにお知恵を拝借させていただきたいと思います。 プログラムの内容自体はとても単純なもので、ひたすら電界、磁界のxyz成分を計算してゆくものです。 条件分岐すらほとんどありません。(最後の境界条件の計算に一回だけ) コードの概要を書かせていただくと、 For t=1 to Mt For x=0 to Mx For y=0 to My-1 For z=0 to Mz-1 '磁界x成分Hx(x,y,z)の計算 next next next '以下同様にHy(x,y,z),Hz(x,y,z),Ex(x,y,z),Ey(x,y,z),Ez(x,y,z)を計算。 '同じForループに入れないのは各々の座標の終端が(-1だけ)違うため。 '境界条件の計算。配列は参照渡し。 call Mur(Ex,Ey,Ez,Hx,Hy,Hz,'以下係数の配列境界の座標など) Next という具合になります。Mt=8000,電磁界の配列はMx=My=Mz=50の3次元配列です。 VB6の場合は最適化の詳細チェックをすべて入れた条件で、 VB.NETでは整数のオーバーフローチェックオフをオンにしました。 .NETは起動は遅くてもJITコンパイルを行ったあとの 演算自体は高速だと聞いていたので期待していたのですが、 目に見えて遅くなってしまったのでちょっと残念な気分です。 何か高速化するテクニックはございませんでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.