01-09-2014 07:48 PM
お世話になります。
大容量のファイル(数100MB)程度からデータを読み出し
DAQを使用してAO出力させるという事を行っています。
ファイルサイズが大きくなるとメモリ不足で一括読み出しができなくなり、
1行毎データを読み出し、キューに書き込ませようと考えています。
現在ファイルの読み出し部分を添付画像のように作成したのですが希望する速度が出ません。
より高速にする為の手法をご教授頂ければと思います。
なお読み出しているファイルはcsvでx行2列、各要素はdblです。
xは数百万程度あります。
このファイルの形式はある程度融通が利きます。
また1データは2~5usec程度で消費されてしまうため同等以上の速度で読み込む必要があります
使用環境はLabVIEW8.6、OSはwindowsXP(32bit)です。
以上よろしくお願いします
01-30-2014 12:38 AM
01-30-2014 12:47 AM
Tepig様
ご提案ありがとうございます。
すぐには確認できそうにありませんが試してみたいと思います。
この様な処理も純粋にCPUクロックに比例して速度が向上すると考えても良いものでしょうか?
ご存じであればご教授頂け無いでしょうか?
高速化が難しそうなら最終的には64bit化するしかないのかなと考えています。
01-30-2014 06:02 AM
ハードディスクからの読み取りを行いながらそのデータを使用するのであれば、
CPUの速度だけではなくて、ハードディスクの速度自体も影響してきます。
最近流行りのSSDであれば、ハードディスクに比べて格段と速い速度でデータを読み取ることができますよ。
そしてデータを出力しつつ、そのデータを1行分ずつ読み取っている速度が
間に合っていないのであれば、CSV形式のテキストファイルを一度バイナリファイルに
変換して、ファイルサイズを縮小した後に読み取るという方法もあります。
縮小したあとであれば、CSVファイルの1行分のデータに使用するメモリで、
バイナリファイルの数行分のデータを保持することができます。
02-02-2014 10:37 PM
ご回答ありがとうございます。
SSD、バイナリ化試してみようと思います。