1 (изменено: MandarinKa02, 2018-04-01 20:35:22)

Тема: AHK: UrlDownloadToFile - переполнение виртуальной памяти

Всем привет. Заметил, что использование функции UrlDownloadToFile дорого обходится в плане выделения виртуальной памяти.
Может я что-то не так делаю?
В общем, вот скрипт:


url:="https://raw.githubusercontent.com/jleb/AHKsock/master/AHKsock.ahk"
; Example: Download text to a variable:
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", url, true)
whr.Send()
; Using 'true' above and the call below allows the script to remain responsive.
whr.WaitForResponse()
txt := whr.ResponseText
MsgBox % StrLen(txt) " bytes"
;UrlDownloadToFile, % url, % path
msgbox ok
return

F5::Reload

(WinHttpRequest дает тот же результат)
https://i.imgur.com/TNO4d2X.png

2 (изменено: stealzy, 2018-04-01 22:20:30)

Re: AHK: UrlDownloadToFile - переполнение виртуальной памяти

При чем тут переполнение вообще? Где-то услышали и захотелось поумничать?
Вы создаете COM объект, а значит подключаете внешние библиотеки, которые не могут быть выгружены без завершения процесса.
Не вижу проблемы в дополнительных 10 Мб, когда у вас рядом опера минимум на полгига.

3 (изменено: MandarinKa02, 2018-04-01 23:14:11)

Re: AHK: UrlDownloadToFile - переполнение виртуальной памяти

Я выразился на вполне понятном языке. В любом случае можно поправить.

Спасибо за ответ, есть ли возможность выгрузить эти библиотеки? Заметил, если скачивать .exe файл, то памяти выделяется меньше или вообще не выделяется под библиотеки.

> Сейчас перепроверил, скачал .exe файл и так же. В ранних версиях ahk вроде как такого не было. Либо я не обращал внимание.
P.S. вопрос по поводу, как выгрузить библиотеки еще актуален.

4

Re: AHK: UrlDownloadToFile - переполнение виртуальной памяти

MandarinKa02 пишет:

Спасибо за ответ, есть ли возможность выгрузить эти библиотеки?

Если они не нужны, то и сами будут выгружены при необходимости. А при глобальной нехватке физической памяти ОС сама разрулит эту проблему, сбросив то, что не используется, на диск.

5

Re: AHK: UrlDownloadToFile - переполнение виртуальной памяти

YMP, благодарю за ответ. Заметил, что спустя 30 минут бездействия скрипта, память освобождается и скрипт висит в процессах где-то 1500кб. Как вы и говорили.