忍者ブログ

EXCEL VBAで あくせく

接続時間測定

Yahooファイナンスからデータを取得する時の応答時間を計測してみました。
時間計測には、Timer関数を使用します。
Timer関数は、午前0時から経過した秒数を表す単精度浮動小数点数型の
値を返しますので、Yahooファイナンスの接続前と応答テキストの受信後に
入れて掛かった時間を計測します。

Private Sub Sample ()
Dim oHttp      As Object
Dim strURI     As String
Dim syCode     As String
Dim cmpText    As String
Dim StTim  As  String
Dim EdTim  As  String

 Set oHttp = CreateObject("MSXML2.XMLHTTP")
  StTim = Timer
'-----------------株価情報検索-------------
   With oHttp
     strURI = "https://finance.yahoo.co.jp/quote/" & Cells(wRow,4)
                .Open "GET", strURI, False
                .setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
                .send
    syCode = GetText(.responsetext, "【", "】")
   cmpText = GetText(.responsetext, "<head>", "<footer>")
  End With
'------------------------------------ 
   EdTim = Timer
  Msgbox "処理時間は、" & EdTim - StTim & "秒です。"
End Sub

自宅の回線はBフレッツ光で、屋内はBUFFALOの無線LAN(Air Station
WZR-450HP-C) が付いています。無線LAN親機は1階で子機は2階に
ありますが、転送速度は 20MB以上が出ており、回線関係の遅延は
無視できる範囲とします。
測定は平日のYahooのアクセスが少ない朝の7:00過ぎに行いました。
測定結果
  1回目:0.4099秒
  2回目:0.4900秒
  3回目:0.5199秒
  4回目:3.3400秒
  5回目:0.4500秒

計測してみると、0.4秒代が多く途中で3.34秒が1回入っています。
この結果からみると、1件あたりの平均情報収集時間は、0.5秒程度と
みた方が無難でしょう。
実際に1000件のデータを収集してみると、約9分かかっています。
ではインターネットの混雑状況は、時間帯により違うため計測時間が
変わるのではないかと予測して時間帯を変えて測定してみました。

時間帯別測定結果
1.    7:00~ :8分50秒
2.     14:30~ :9分27秒
3.  19:30~ :8分45秒   
4.  21:00~ :8分40秒

結果からみると、インターネットの混雑状況による測定時間の
変化はほとんどないとみてよいでしょう。



2021.04.25  Yahooの仕様変更により情報収集ができなくなったので修正。

2017.04.01 Yahooの仕様変更により情報収集ができなくなったので修正。
      接続先URLの変更。

拍手[1回]

PR