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側で取得
するようにしました。
ちなみに自分が借りてるサーバーへのリクエストで、他人のサーバーにはアクセスしないので
ご安心くださいませ。



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