InetRead langsam?

  • Hallo,

    ich hab zurzeit ein Problem mit InetRead. Also meistens ist es bei mir zu langsam. Es braucht manchmal 1-10 Sekunden, um eine Textdatei herunterzuladen, wo nur eine "4" drinnen steht. Am Server sollte es nicht liegen, da der Ping zum Server ~60 ms ist. Besonders nervig ist es, wenn es manchmal >3 Sekunden dauert, bis es die Datei ausgeselesen hat.

    Hier mein Code:

    [autoit]

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12")

    [/autoit][autoit][/autoit][autoit]

    $timer = TimerInit()
    $get = InetRead("http://deepsoftware.spacequadrat.de/Products/Desktop%20Radio/Update/Update.txt",1)
    $diff = TimerDiff($timer)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, $diff, BinaryToString($get))

    [/autoit]


    Hmm ist das bei euch auch so? Kennt jemand eine schnellere Alternative als InetRead?


    MfG

    DeepRed92

  • Hmm ist das bei euch auch so?


    Ja, habs jetzt ein paar mal probiert und meistens braucht er < 500 ms, ab und zu musste ich aber auch knapp 7 Sekunden warten. Da hast du wohl keinen Einfluss drauf! :S

    Du kannst ja mal testen, wie es bei dir bei mehreren Durchläufen aussieht:

    Spoiler anzeigen
    [autoit]

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12")

    [/autoit] [autoit][/autoit] [autoit]

    Dim $diff = 0, _
    $diff_average = 0, _
    $sGet = "", _
    $imode = 0

    [/autoit] [autoit][/autoit] [autoit]

    Switch $imode
    Case 0
    For $i = 1 To 1
    $timer = TimerInit()
    $get = InetRead("http://deepsoftware.spacequadrat.de/Products/Desktop%20Radio/Update/Update.txt", 1)
    $sGet &= BinaryToString($get)
    $diff += TimerDiff($timer)
    ToolTip($diff)
    $diff_average = $diff/$i
    Next
    Case 1
    For $i = 1 To 20
    $timer = TimerInit()
    InetGet("http://deepsoftware.spacequadrat.de/Products/Desktop%20Radio/Update/Update.txt", @ScriptDir & "\temp", 1)
    $fh = FileOpen(@ScriptDir & "\temp")
    $sGet = FileRead($fh)
    FileClose($fh)
    FileDelete(@ScriptDir & "\temp")
    $diff += TimerDiff($timer)
    ToolTip($diff)
    $diff_average = $diff/$i
    Next
    Case 2
    For $i = 1 To 20
    $timer = TimerInit()
    $get = InetRead("http://deepsoftware.spacequadrat.de/Products/Desktop%20Radio/Update/Update.txt", 1)
    $sGet &= BinaryToString($get)
    $diff += TimerDiff($timer)
    ToolTip($diff)
    $diff_average = $diff/$i
    Next
    EndSwitch
    MsgBox(0, $diff_average, $sGet)

    [/autoit]
  • Hab nochmal nen 10 Minuten Test mit 600 Abfragen gemacht:

    Min: 68ms
    Max: 17800ms
    Avg: 260ms

    23 Abfragen haben mehr als 1000ms gebraucht
    502 Abfragen haben weniger als 100ms gebraucht

    Worans liegt weiss ich nicht, aber so wie es ausschaut passiert das eher selten.

  • Hey, danke dir. Bei mir sieht es schon etwas anders aus- Min ist bei mir 800 und Max. aus so um die 18 Sekunden.. Im Durchschnitt sind es bei mir 1.2 Sekunden. :/

    Vielleicht liegt es daran, dass ich Kaspersky Internet Security installiert habe. Bei den Tests hab ich das natürlich ausgeschaltet.

    Mein Betriebssystem: Win7 x64


    Ich hab mal eine neue Variante aus Codeschnipsel erstellt:

    Spoiler anzeigen
    [autoit]

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $timer = TimerInit()
    $getv= _GetVersion()
    $diff = TimerDiff($timer)
    ConsoleWrite($getv & " ===> " & $diff & @CRLF)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GetVersion()
    TCPStartup()
    Local $get
    Local $packet = 'GET http://deepsoftware.spacequadrat.de/Products/Deskt…date/Update.txt HTTP/1.1' & @CRLF & _
    'Host: http://www.deepsoftware.spacequadrat.de' & @CRLF & _
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12' & @CRLF & _
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
    'Keep-Alive: 300' & @CRLF & _
    'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF
    Local $con = TCPConnect(TCPNameToIP("deepsoftware.spacequadrat.de"), 80)

    [/autoit] [autoit][/autoit] [autoit]

    TCPSend($con, $packet)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $get = TCPRecv($con,2048)
    Until $get <> ""

    [/autoit] [autoit][/autoit] [autoit]

    Local $split = StringSplit($get, @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    Return Number($split[$split[0]])
    EndFunc

    [/autoit]

    Ist bei mir oft bei 250 ms. Schwankt aber sehr viel..