JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Link 質問箱

一括表示 リストに戻る
タイトルDataLab検証ツールでのデータ取得方法について
記事No6414
投稿日: 2019/06/18(Tue) 20:31
投稿者st
いつもお世話になっております。

現在C#、Visual Studio 2017で開発を行っております。

DataLab検証ツールにでデータ取得を行いますと、こちらのプログラムと比べ、非常に高速にデータ取得されている印象があります。

そこで、JVGets()メソッドの実行時間(といっても実時間になってしまいますが)をこちらで作成したC#プログラム、および御社ご提供C++(.NET)サンプルプログラムにて測定してみました。

C#側はStopwatchクラス、C++側はQueryPerformanceCounter(API)を用い、JVGetsメソッドのステップの前後で計測開始ー終了を挟む格好で実時間を測定。

(ちなみにVCにあるサンプルはビルドできなかったため計測できませんでした)


まず、C++とC#に有意な差はありませんでした。
(部分的にサンプリングして確認)

また、DataSpec="RACEDIFF" Option=4(セットアップ)の場合、
FromTimeによって読込時間が大きく変わることが分かりました。

以下にC#で観察したFromTimeとJVGets一回の呼出実時間(おおよそ)を示します。

20100601000000 10〜12ms
20170601000000 1.8ms
20180601000000 1.2ms
20190101000000 0.8ms
20190401000000 0.6ms


一方、検証ツールではJVGetsを計るわけには行かないので、ツール動作から類推できる内容について示します。

DataSpec=RACEDIFF
FromTime=20170601000000
Option = セットアップ

レコード数 539044
取得ファイル名一覧の開始:20:06:06 20:08:15(2回目)
取得ファイル名一覧の終了:20:06:20 20:08:30(3回目)
リストビューの表示完了(目視):取得ファイル名一覧の終了後、5秒程度

レコード数は取得ファイル名一覧より抽出し計算しました。
(余談ですがInfomationのRecordCountがファイル数になっていますが、レコード数に修正して頂けると有難いです)

以上から安直に処理実時間をレコード数で割ると、

取得ファイル名一覧の間(約16秒):29.68μs
リストビューの表示完了(約24秒):38.95μs

となり、1レコード当たりの処理時間が圧倒的に速いことが伺えます。
(つまりJVGetsの1回の呼出時間はさらに短い)


しかしながら、過去の質問のNo.8622でのご回答:
http://forum.jra-van.ne.jp/cgi-bin/datalab/bbsjvlink/datalabbbs.cgi?mod
e=allread&pastlog=0006&no=8620&page=50&act=past#8620

にて、

「DataLab.検証ツールは、JV-Linkに用意されたメソッドを使用して
作成されております。
非公開のAPIなどは使用しておりません。

メソッド自体の処理時間には相違は無いと考えられますので、」

とご回答されています。

となると使い方の問題ということになるかと思いますが、
こちらではサンプルおよび仕様書にあるような単純な使い方

JVInit()->JVOpen()->JVGets()の繰り返し->JVClose()

をしております。

検証ツールではどのような使い方をされていて
ここまで超高速に動作するのでしょうか。

お忙しいところ大変恐縮ですが、
ご教示頂けましたら大変有難いと存じます。

何卒宜しくお願い申し上げます。

タイトルRe^2: DataLab検証ツールでのデータ取得方法について
記事No6416
投稿日: 2019/06/26(Wed) 16:18
投稿者st
> JVInit()はアブリ起動後の最初に一回だけでOKかと。
> 繰り返しループの中に入っているとかなり遅くなります。


JVInit()->JVOpen()->JVGets()の繰り返し->JVClose()


と書いてあります通り、繰り返しはJVGet()のみです。

タイトルRe^3: DataLab検証ツールでのデータ取得方法について
記事No6437
投稿日: 2019/07/16(Tue) 13:31
投稿者JRA-VANソフトサポート
JRA-VANソフトサポートの吉岡です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

回答が遅くなり、大変申し訳ありません。

>検証ツールではどのような使い方をされていて
>ここまで超高速に動作するのでしょうか。

恐縮ですが、DataLab.検証ツールの内部処理については、
過去に回答している内容よりも詳しいことは回答致しかねます。

「DataLab.検証ツールは、JV-Linkに用意されたメソッドを使用して
作成されております。非公開のAPIなどは使用しておりません。」

ご理解のほどよろしくお願いいたします。

以上、よろしくお願い致します。

タイトルRe^4: DataLab検証ツールでのデータ取得方法について
記事No6440
投稿日: 2019/07/16(Tue) 20:52
投稿者st
いつもお世話になっております。
お忙しい中ご回答誠に有難うございます。


> 恐縮ですが、DataLab.検証ツールの内部処理については、
> 過去に回答している内容よりも詳しいことは回答致しかねます。
>
> 「DataLab.検証ツールは、JV-Linkに用意されたメソッドを使用して
> 作成されております。非公開のAPIなどは使用しておりません。」
>

ではJVGetsの速度に関しては別途改めまして質問させて頂きたいと存じます。


何卒宜しくお願い致します。

ウィンドウを閉じる