NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ファイルの読み込み高速化

お世話になります。

 

大容量のファイル(数100MB)程度からデータを読み出し

DAQを使用してAO出力させるという事を行っています。

 

ファイルサイズが大きくなるとメモリ不足で一括読み出しができなくなり、

1行毎データを読み出し、キューに書き込ませようと考えています。

 

現在ファイルの読み出し部分を添付画像のように作成したのですが希望する速度が出ません。

より高速にする為の手法をご教授頂ければと思います。

 

なお読み出しているファイルはcsvでx行2列、各要素はdblです。

xは数百万程度あります。

このファイルの形式はある程度融通が利きます。

また1データは2~5usec程度で消費されてしまうため同等以上の速度で読み込む必要があります

 

使用環境はLabVIEW8.6、OSはwindowsXP(32bit)です。

 

以上よろしくお願いします

0 件の賞賛
メッセージ1/5
8,301件の閲覧回数

拝見してみましたが、かなりシンプルですね。。。

この構造でさえご希望にかなわないようであれば、

速度の向上は難しいのかもしれません。

 

お使いのPCがWindows XPということですが、より高性能のCPUを積んだ

PCで試すことは難しいのでしょうか?

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/5
7,957件の閲覧回数

Tepig様

 

ご提案ありがとうございます。

すぐには確認できそうにありませんが試してみたいと思います。

この様な処理も純粋にCPUクロックに比例して速度が向上すると考えても良いものでしょうか?

ご存じであればご教授頂け無いでしょうか?

 

高速化が難しそうなら最終的には64bit化するしかないのかなと考えています。

0 件の賞賛
メッセージ3/5
7,952件の閲覧回数

ハードディスクからの読み取りを行いながらそのデータを使用するのであれば、

CPUの速度だけではなくて、ハードディスクの速度自体も影響してきます。

最近流行りのSSDであれば、ハードディスクに比べて格段と速い速度でデータを読み取ることができますよ。

 

そしてデータを出力しつつ、そのデータを1行分ずつ読み取っている速度が

間に合っていないのであれば、CSV形式のテキストファイルを一度バイナリファイルに

変換して、ファイルサイズを縮小した後に読み取るという方法もあります。

 

縮小したあとであれば、CSVファイルの1行分のデータに使用するメモリで、

バイナリファイルの数行分のデータを保持することができます。

 

メッセージ4/5
7,935件の閲覧回数

ご回答ありがとうございます。

 

SSD、バイナリ化試してみようと思います。

0 件の賞賛
メッセージ5/5
7,902件の閲覧回数