Неужели я первый сталкиваюсь с этим?
Есть код, который запускается раз в секунду:
HINTERNET hInternetSession = InternetOpen(
"Microsoft Internet Explorer",
INTERNET_OPEN_TYPE_PROXY,
NULL, NULL, 0);
HINTERNET hRequest = InternetOpenUrl(
hInternetSession,
"http://127.0.0.1/",
NULL, 0, 0, 0);
InternetCloseHandle(hRequest);
InternetCloseHandle(hInternetSession);
Собсно и все. Даже полученные данные не парсим...
Так вот эта штуччка жрет 1-2к памяти на каждый запрос.
ЗЫ. Это упрощенная версия. В оригинале там через InternetConnect + HttpOpenRequest + HttpSendRequest ибо https и POST, но кушает именно это — проверено опытным путем.
Буду благодарен за мысли/ссылки.
Здравствуйте, Сергей Савостин, Вы писали:
СС>Неужели я первый сталкиваюсь с этим?
СС>Есть код, который запускается раз в секунду:
СС>СС>HINTERNET hInternetSession = InternetOpen(
СС> "Microsoft Internet Explorer",
СС> INTERNET_OPEN_TYPE_PROXY,
СС> NULL, NULL, 0);
СС>HINTERNET hRequest = InternetOpenUrl(
СС> hInternetSession,
СС> "http://127.0.0.1/",
СС> NULL, 0, 0, 0);
СС>InternetCloseHandle(hRequest);
СС>InternetCloseHandle(hInternetSession);
СС>
СС>Собсно и все. Даже полученные данные не парсим...
СС>Так вот эта штуччка жрет 1-2к памяти на каждый запрос.
СС>ЗЫ. Это упрощенная версия. В оригинале там через InternetConnect + HttpOpenRequest + HttpSendRequest ибо https и POST, но кушает именно это — проверено опытным путем.
СС>Буду благодарен за мысли/ссылки.
может есть смысл не открывать\закрывать сессию каждый раз, а сделать это один раз?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
M>может есть смысл не открывать\закрывать сессию каждый раз, а сделать это один раз?
да как показал опыт, жрет именно в
HINTERNET hRequest = InternetOpenUrl(
hInternetSession,
"http://127.0.0.1/",
NULL, 0, 0, 0);
даже могу точнее сказать — вот тут:
HttpSendRequest(hRequest, NULL,0, NULL,0);
как это ни странно....
Здравствуйте, Сергей Савостин, Вы писали:
СС>Неужели я первый сталкиваюсь с этим?
СС>Есть код, который запускается раз в секунду:
СС>СС>HINTERNET hInternetSession = InternetOpen(
СС> "Microsoft Internet Explorer",
СС> INTERNET_OPEN_TYPE_PROXY,
СС> NULL, NULL, 0);
СС>HINTERNET hRequest = InternetOpenUrl(
СС> hInternetSession,
СС> "http://127.0.0.1/",
СС> NULL, 0, 0, 0);
СС>InternetCloseHandle(hRequest);
СС>InternetCloseHandle(hInternetSession);
СС>
СС>Собсно и все. Даже полученные данные не парсим...
СС>Так вот эта штуччка жрет 1-2к памяти на каждый запрос.
СС>ЗЫ. Это упрощенная версия. В оригинале там через InternetConnect + HttpOpenRequest + HttpSendRequest ибо https и POST, но кушает именно это — проверено опытным путем.
СС>Буду благодарен за мысли/ссылки.
может есть смысл не открывать\закрывать сессию каждый раз, а сделать это один раз?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
я бы проверил, действительно ли это утечка, т.е. не 1кб на вызов, а 1М на 1000 вызовов, а также происходит ли это в другой системе и с другим видом подключения (например, не через прокси) и если менять параметры с NULL на что-то другое.