- PR -

VB.NETのプログラムの実行時間について

1
投稿者投稿内容
おじか
ベテラン
会議室デビュー日: 2002/12/04
投稿数: 57
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-21 14:58
こんにちわ。
お世話になります。
VB.NETである演算をするプログラムを作成しました。
このプログラムの実行時間が実行ごとに変わってしまいます。
誤差は約20mSほどです。
制御系のプログラムに組み込まれているので誤差20mSは大きすぎるのです。
割り込みの処理等は一切入れていません。ある演算を入れてPCIインターフェイスに書込みを行います。

プログラムの実行時間についてアドバイスをいただければありがたいです。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-02-21 15:49
システムが動作しているマシンのメモリの状況(他のアプリが動いている)などに
影響をうけるんじゃないでしょうか。
タイミングによってはGCが起きている可能性もありますね。
このあたり、VB.NETやC#では制御できない部分だと思います。

#C++でマネージドでなければできるのだろか?
おじか
ベテラン
会議室デビュー日: 2002/12/04
投稿数: 57
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-21 16:14
そうなんですか。
PCIにアクセスするときにWindowsが介在してそのときにロスが発生している可能性もあります。
プログラムのプライオリティをあげたり、リアルタイム性をあげれば回避できるかも知れないらしいです。
これは、かなり難しい問題かもしれません。
もう少し調べてみたいと思います。
ありがとうございます。
おじか
ベテラン
会議室デビュー日: 2002/12/04
投稿数: 57
お住まい・勤務地: 埼玉県
投稿日時: 2003-02-21 18:02
PCIへのアクセス時にWindowsが介在して誤差を生んでるみたいです。
特に他のアプリが起動している時など誤差は大きくなります。
タスクのプライオリティを高くすれば回避できるかもしれないことが分かりました。

ただ、プライオリティの設定方法がわかりません。.NETのヘルプにあるんですが説明がわかりません。

どなたか教えていただけませんか。
よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)