JV-Link 質問箱 |
タイトル | : 検証ツールの内部処理について |
記事No | : 8620 |
投稿日 | : 2016/03/16(Wed) 21:05 |
投稿者 | : 白老 |
|
セットアップに要する時間の大部分を占めているのは JVRead/Gets であり、特 にレコード種別 SE のファイルの処理には大きな時間が掛かります。1.2GHz と いう非力な PC ですと一か月分で 2 分以上を要します。1 秒間に数十キロバイ トしか読み込めていない計算です。これは自作プログラムだけでなく、サンプル プログラムでも同様です。
さて同じ PC にて検証ツールを実行すると、ほとんど一瞬で、これらのプログ ラムとは比較にならないほど高速に、読み込みが行われているように見受けられ ます。まるで全て JVSkip しているような速さですが、表の処理が終われば任意 のセットアップ用データを開くことができる点から、全部読み込んでいるものと 判断しました。
検証ツールはどのようにして、この高速処理を実現しているのでしょうか?公 開されていない API でも使用しているのでしょうか?お答えできる範囲で構い ませんので、どうかご教示ください。 |
|
タイトル | : Re: 検証ツールの内部処理について |
記事No | : 8622 |
投稿日 | : 2016/03/18(Fri) 14:10 |
投稿者 | : JRA-VANソフトサポート |
|
JRA-VANソフトサポートの竹下です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
> 検証ツールはどのようにして、この高速処理を実現しているので > しょうか?公開されていない API でも使用しているのでしょう > か?お答えできる範囲で構いませんので、どうかご教示ください。
DataLab.検証ツールは、JV-Linkに用意されたメソッドを使用して 作成されております。 非公開のAPIなどは使用しておりません。
メソッド自体の処理時間には相違は無いと考えられますので、 その前後の処理に原因がある可能性がございます。
以上、よろしくお願いいたします。 |
|
タイトル | : Re^2: 検証ツールの内部処理について |
記事No | : 8624 |
投稿日 | : 2016/03/18(Fri) 20:35 |
投稿者 | : 白老 |
|
ご回答ありがとうございます。
JV-Link のメソッドのみを使用している点は了解しました。しかしパフォーマ ンスの差がどうにも理解できません。自分のプログラムだけでなく、JVDTLABSDK 441.lzh に含まれるプログラムも同様に時間がかかる状況です。
また、前述の 1.2GHz の PC において JVRead の一回の呼び出しにかかる時間 を計測しましたところ、約 26.4 ミリ秒でした。レコード種別による違いはほと んど無いようです。SE のファイルには 5000 個以上のレコードがありますから 、-1 が返されるのに 138 秒以上かかる計算になり、実際その程度かかっていま す。セキュリティ系も念のため解除して計測しましたが、効果はありませんでし た。
現段階では何が違っているのか全くわかりませんが、もう少し試行錯誤してみ るつもりです。
ところで検証ツールの動作についてもう一つ質問があります。このツールを起 動して読み込みを実行し、しばらく待つと表が作成されます。この表を右クリッ クするとファイルの一覧が表示され、その中の一ファイルをクリックすることで ファイルを開く事ができます。この動作がどうなっているのかと思いました。
読み込み中のメモリ使用量やファイル書き込み量は、タスクマネージャで見る 限り全く増加していません。よって、この段階では実際に全データを取得してい るのではなくて、ファイル名だけを取得して JVSkip で読み飛ばしているのでは ないかと推測しました。
この推測が正しいなら、一覧にあるファイルをクリックした時点で改めて読み 出している事になりますが、JVOpen にも JVRead/Gets にも、任意のファイルか ら読みだすような機能は無いと理解しています。これは読み出し方法の工夫によ るものでしょうか。それとも自分の理解が間違っていて、実際には任意のファイ ルから読みだすことが可能なのでしょうか。
あるいは推測自体が間違っていて実際に全データを読み込んでいるとするなら ば、メモリも消費せず、ディスクに書き出すこともせずにどうやって保持してい るのか分かりません。そのような技術があるのでしょうか? |
|
タイトル | : 解決しました |
記事No | : 8625 |
投稿日 | : 2016/03/19(Sat) 10:02 |
投稿者 | : 白老 |
|
確かに JVOpen および JVRead のみを用いまして、一つの SE ファイルの読み込 みにかかる時間を 138 秒以上から 1 秒未満に短縮することができました。
ありがとうございました。 |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|