HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0815
ひろとnetfileinfoの速度の限界3解決


ひろと

リンク

2021/8/15(Sun) 18:55:01|NO.93591

こんにちわ、現在インターネット上にあるファイルサイズを複数回取得するプログラム
を組んでおりまして、netfileinfoの速度が遅いので取得する度に画面が固まって困ってます。


wininet.dllのInternetOpenUrl関数でサイズを取得するプログラムを組んでみましたが
それよりもnetfileinfoの方が早かったので、これ以上早くならないのかな?とも感じてたり
します。
>↑のInternetOpenUrlでサイズを取得するプログラムは
> http://hsptv.sakura.ne.jp/play/pforum.php?mode=pastwch&num=88998
> こちらを使わせていただきました、、、が速度出ず。




そこで、サンプルスクリプトを作って見ました。
下記のコードはhttps://www.onionsoft.net/hsp/v36/doclib/hsp3ttl.jpgのファイルサイズを
10回取得します。それをまた10回取得し、平均の処理速度を出してます。
これ以上早い方法があれば教えてほしいです。
よろしくお願いします。



#include "hspinet.as" #uselib "Wininet" #func DeleteUrlCacheEntryA "DeleteUrlCacheEntryA" str #func DeleteUrlCacheEntryW "DeleteUrlCacheEntryW" wstr #define DeleteUrlCacheEntry DeleteUrlCacheEntryA #uselib "winmm.dll" #cfunc global timeGetTime "timeGetTime" Goukei = 0 repeat 10,1 開始時間=timegettime() repeat 10 await 10 DeleteUrlCacheEntry "https://www.onionsoft.net/hsp/v36/doclib/hsp3ttl.jpg" netterm netinit neturl "https://www.onionsoft.net/hsp/v36/doclib/" netfileinfo net_file_info, "hsp3ttl.jpg" if stat ! 0 : mes "取得失敗" : stop if instr(net_file_info,,"404") ! -1 : mes "取得失敗" : stop if instr(net_file_info,,"403") ! -1 : mes "取得失敗" : stop net_file_info = getpath( net_file_info, 16 ) index = instr( net_file_info, 0, "last-modified: " ) if ( index != -1 ) { sdim writedate, 800 getstr writedate, net_file_info, index + strlen( "last-modified:" ) } //mes writedate loop Goukei = Goukei+(timegettime()-開始時間) mes ""+cnt+"回目 : "+(timegettime()-開始時間)+"ms" loop mes "平均取得時間 : " + Goukei/10+"ms"



この記事に返信する


usagi

リンク

2021/8/18(Wed) 23:27:20|NO.93620

気になったのですが、ネットワークの取得速度ってwindows のタクス待ちよりかは早かならないと思いますので、
ループ待ちのなかでawait 0 (時間は待たないけどwindows にタスクかえす。)
を入れたら解決しませんか?



usagi

リンク

2021/8/19(Thu) 01:27:45|NO.93621

あっ、ちなみにサンプルスクリプトは動かしてないので、Windowsにタスクを返していないことが問題で無かったらすみません。
速さを求めてますが、悪意はなくてもDos攻撃的な感じにならない様に他人のサーバーへのアクセスは気をつけた方が良いかもですね。
(最近は聞かないですが、むかし岡崎市立中央図書館事件とかあったので、高速に大量のリクエストは送らない方が安全かと)



ひろと

リンク

2021/8/21(Sat) 04:51:37|NO.93645

> usagi様

ありがとうございます。
windowsからサーバーに置いてあるファイルの情報取得には速度の限界があるみたいなので
PHPで対象ファイルのサイズを取得したものをテキストファイルに保存し、それをHSP側で取得
するようにしました。
ちなみに自分が借りてるサーバーへのリクエストで、他人のサーバーにはアクセスしないので
ご安心くださいませ。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93591への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2021(c) All rights reserved.