
のび太
HISTORICALRATEDATAAUTOの価格取得の所要時間は正規分布ではない件
他スレッド(「HISTORICALRATEDATAAUTOの取得本数がおかしい」「単位時間あたりにアクセスが集中しました」)に書いたことにも関係するのですが、新しい事柄なので、別スレッドにします。
時々、価格取得に失敗することがあって、どうにも謎だったので簡単なテストプログラムを書いて、CFDHISTORICALRATEDATAAUTOによる価格取得の所要時間を調べてみました。
すると全く正規分布にはなってなくて、2秒程度で更新される場合と10秒以上かかる場合とに二極分布していることが分かりました。
RSSの仕様になんらかの問題があるのだろうと思いますのが、いずれにせよこの事実は運用上の注意を要することだと思いますので、念のためみなさんに情報共有します。
ネットトレーダーで「単位時間あたりにアクセスが集中しました。しばらくたってご利用ください」というメッセージが表示されることがあるので、仕様上の何らかのネットワークのボトルネックが関係するのかもしれません。そうだとすると、「HISTORICALRATEDATAAUTOの取得本数がおかしい」の原因も関連するのでしょう。
もしそうなら、システムの改善を希望します。
関連して何かご存じの方があれば教えてください。
2025年05月05日
大野 了
のび太さん、こんにちは!!
では、自分もこちらにまとめてー
情報共有ありがとうございます!!
ありがたい限りです!
こちらは、CFDHISTORICALRATEDATAAUTOで取得間隔を60秒などにしておいて、
60秒ごとに行われるCFDHISTORICALRATEDATAAUTOの実行時間がxxx秒かかるという情報の分布になりますでしょうか?
※実行が2秒程度で終わる場合や、10秒以上かかってしまうなど両極端
※ホントは最頻値や平均値で正規分布してほしい
『単位時間あたりにアクセスが集中しました。』を再現させたいところですね。
もうちょっと再現できないか、チャレンジしてみます!
2025年05月05日
のび太
大野さん
早速ありがとうございます
>CFDHISTORICALRATEDATAAUTOで取得間隔を60秒などにしておいて、
>60秒ごとに行われるCFDHISTORICALRATEDATAAUTOの実行時間がxxx秒かかるという情報の分布になりますでしょうか?
以下のような処理を行っています。
1.画面をアクティベイトした後で、そこに表示されたヘッダーより下のデータをいったん全て空白にする
2.空白にしたセルに新たなデータが表示されているかどうかをチェックする*(空白である場合は、2秒待機して繰り返し合計50回まで*を行なう。リソース不足になることを回避するため、再帰処理は使わずdo whileとgotoで繰り返し処理する。)
処理2においては、2*5秒以上かかる場合は、単に待機するだけではなく、RSSアドインの更新をかけるようにしています。
(以前、大野さんに教えていただいた方法が役に合っています。改めまして、お礼を申し上げます。)
すると、2*1秒で収まる場合もありますが、2*5秒以上かかることも結構あり、その途中の秒数(2*2秒から2*2秒)で収まることは少ないので、結構二極分解します。
ということは、仕様上のなんらかのネットワークボトルネックで更新が必要なシステム状態になっているのかもしれません。
また、私はCPUはi3からi9まで、メモリは16GBから128GMまでいろいろなPCを利用していますが、低機能のPCのほうが止まってしまうことが多いようです。
もしかしたらCPUやメモリがボトルネックなのかもしれません。
といっても、単純な処理すし、CPUi3メモリ16GBでもタスクマネージャで見ると余力はたっぷりあるので、CPUやメモリがボトルネックとはちょっと考えられないです。
もしかしたら、仮想メモリが無駄に多くなっていてボトルネックになっているかもしれないので、今後仮想メモリをゼロにしたらどうなるかも調べてみます。
2025年05月06日
大野 了
のび太さん、こんにちは!!
なるほど!!
純粋に更新処理にかかる時間を観られてるんですねー
もしあるとしたら・・・
『再帰処理は使わずdo whileとgotoで繰り返し処理する』
こちらの処理をonTimeメソッドに変更する感じでしょうか・・・
ザラ場中は価格のチェックなどの処理を動かし続けたい為、do whileなどで繰り返し処理をされていると思います。
ですが、基本RSSはVBAが動作している時はシートへの更新処理が行えないため、いったんVBAを終了させてあげる必要があります。
このため、VBAから自分自身のVBAを呼ぶような形に変更することにより、動作が安定します!!
以前いただいた質問のリンクで大変申し訳ございませんが、こちらをご参考いただけますと幸いです。
onTimeの使い方
https://bbs.okasan-online.co.jp/ont/rss/board/?page=1&topic_id=258#comment_1385
これで直るとよいのですが・・・
2025年05月07日