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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0614
たこhspsockの送受信速度3解決


たこ

リンク

2008/6/14(Sat) 01:11:27|NO.16698

MSXML2.XMLHTTPかhspsockでWebページのソースをダウンロードするときに
MSXML2.XMLHTTPが圧倒的に早いのですがなぜなんでしょうか?


#include "hspsock.as" strResult = "" url = "ir9.jp" rdir = "/prog/ayu/win32err.htm" sdim a, 64 buf = "" // MSXML2.XMLHTTPの取得時間の計測 time = gettime(5)*60*1000 + gettime(6)*1000 + gettime(7) newcom HTTP, "MSXML2.XMLHTTP" HTTP->"Open" "GET", "http://"+url, 0 HTTP->"SetRequestHeader" "Content-Type", "application/x-www-form-urlencoded" HTTP->"Send" repeat if HTTP("readyState") = 4 : break await 0 loop strResult = HTTP("responseText") time = gettime(5)*60*1000 + gettime(6)*1000 + gettime(7) - time mes "MSXML2.XMLHTTP : かかった時間 = "+time+"ミリ秒" // hspsockの取得時間の計測 time = gettime(5)*60*1000 + gettime(6)*1000 + gettime(7) sockopen 0, url, 80 sockput "GET "+rdir+" HTTP/1.0\nHost: "+url+"\n\n", 0 repeat await 0 sockget a, 64 if peek(a,0) = 0 : break buf += a loop time = gettime(5)*60*1000 + gettime(6)*1000 + gettime(7) - time mes "hspsock : かかった時間 = "+time+"ミリ秒" sockclose 0 mesbox buf, 640, 400// 結果をとりあえず表示

テストに使用したWEBページは約590KBのページです
容量の少ないWEBページではhspsockのほうが早かったです



この記事に返信する


たこ

リンク

2008/6/15(Sun) 02:36:37|NO.16737

遅くなる原因は分かりました
文字列の追加が多くなるにつれて遅くなるようです
なので質問を変えます
どうすれば速く文字列の追加ができるようになるのでしょうか?



ANTARES

リンク

2008/6/16(Mon) 01:43:23|NO.16767

 文字列の結合は、既存バッファの長さをいちいち調べるので
少しずつたくさん結合すると、目に見えて遅くなります。
したがって、書き込み位置を指定できるpokeやmemcpyを
使うといいでしょう。
 といっても、書き込み位置をstrlen(buf)で調べたりすると
同じことなので、注意が必要です。



たこ

リンク

2008/6/16(Mon) 17:33:11|NO.16780

文字列の長さの取得をsockgetbの戻り値を使って、
memcpyを使って文字列の追加をしたら
受信速度が約1000ミリ秒にまでになりました
ありがとうございましたm(_ _)m



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