korvindeson
Новичок
- Сообщения
- 19
- Репутация
- 0
Почитал вроде бы и форум и гугль. Ответ ко мне не снизошёл :stars:
Скрипт длинный, выкладывать не буду. Опишу кратко
Операции с файлами нужны в цикле для того, чтобы если что вырубится, можно было продожить с того места где остановились. Скрипт начинает с 5 мб оперативы, разжирается до 500. Кто виновник не пойму. Операции с файлами вроде не должны. В цикле объекты не создаю, таймер обнуляю. Растёт именно в процессе долгой работы. Так что утечка 100%
Скрипт длинный, выкладывать не буду. Опишу кратко
Код:
Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.setTimeouts(5000, 5000, 10000, 10000)
Local $Otch = FileOpen(@ScriptDir & "\проверка.txt", $FO_APPEND)
;цепь $oHTTP.Open, .Send, .WaitForResponse
;До нескольких миллионов строк
$aArray1 = FileReadToArray(@ScriptDir & "\1.txt")
Local $hTimer = TimerInit()
for $j = 0 to UBound($aArray1)-1
If TimerDiff($hTimer) >= 305000 then
$hTimer = Null
$hTimer = TimerInit()
;цепь $oHTTP.Open, .Send, .WaitForResponse
EndIf
;цепь $oHTTP.Open, .Send, .WaitForResponse
$x =$oHTTP.ResponseText
;Операции со стрингами StringSplit, StringInStr, результат в $x
_FileWriteToLine ( @ScriptDir & "\1.txt", 1, "",1)
If StringInStr(StringInStr($x,"success") <> 0 Then FileWriteLine ($Otch, $aArray1[$j])
next
Операции с файлами нужны в цикле для того, чтобы если что вырубится, можно было продожить с того места где остановились. Скрипт начинает с 5 мб оперативы, разжирается до 500. Кто виновник не пойму. Операции с файлами вроде не должны. В цикле объекты не создаю, таймер обнуляю. Растёт именно в процессе долгой работы. Так что утечка 100%