· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Minimize и загрузка CPU

Посл.отвђт Сообщенiе


Дата: Авг 5, 2003 02:33:02 · Поправил: severe44

Есть программа (без сырцов), которая будучи минимизированной потребляет весь свободный ресурс CPU при некоторых обращениях к ней по ее сетевому протоколу.
Учитывая что программа (это сервер) должна работать как сервис, то она практически глушит машину.
Таже програма запущенная как приложение и не минимизированная таких проблем не создает.
Подскажите как оптимальнее вылечить это. Позаменять nop'ами все процедуры типа ShowWindow? Или процедуры на уровень выше? Или другие конкретные процедуры?
Мне кажется что это, наверно, уже известный баг.
Сигнатура программы сообщает следующее:
VC v2.0/4.x/5.0
MFC 3.1/4.0/4.2


Дата: Авг 5, 2003 04:58:59

severe44
Подскажите как оптимальнее вылечить это
Если приложение имеет только одно главное окно (вроде диалогового окна), оптимально будет найти вызов CreateWindow (CreateWindowEx) или DialogBox (DialogBoxParam) и добавить туда
invoke ShowWindow,eax,SW_HIDE
Правда, как потом такое приложение корректно закрыть?

Мне кажется что это, наверно, уже известный баг
Первый раз слышу...


Дата: Авг 5, 2003 12:22:44

Если обычными средствами (SoftICE + IDA) не удается локализовать причину, можно попробовать профайлер натравить, Intel'овский VTune, например, у AMD тоже свой есть. Он покажет распределение нагрузки по коду - можно будет сразу локализовать место пожирания ресурса.


Дата: Авг 7, 2003 00:25:07

К сожалению VTune мне тоже не помог.
Зато выяснилось, что баг не проявляется только если окно программы активно и проявляется если оно неактивно (свернуто или просто не выбрано). Это уже полегче.

Подскажите какие API функции мне анализировать.


Дата: Авг 7, 2003 00:42:01

severe44

Хотя и простое решение, но если программа достаточно популярна, может стоит сделать поиск? Я встречал решение подобных проблем, например, с explore'ром. Посмотрите, если еще не сделали это.


Дата: Авг 7, 2003 15:11:15

Поробуй посмотреть обрабатывает ли она WM_ACTIVATEAPP, WM_ACTIVATE в своей оконной процедуре. Мож еще какие мессаги есть - поройся в доке.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066