Вопрос № 100402: Мир вам, уважаемые эксперты!
Мне необходимо максимизировать аппаратные ресурсы, выделяемые windows моей программе. Чем больше тем лучше; все остальное может висеть - не страшно (Приложение очень ресурсоемко - счет может длится часами, днями и дол...Вопрос № 100421: Здравствуйте, уважаемые Эксперты!
Бывают ли API функции дающие возможность узнать загрузку процессора?
С уважением, Нурлан.
...
Вопрос № 100.402
Мир вам, уважаемые эксперты!
Мне необходимо максимизировать аппаратные ресурсы, выделяемые windows моей программе. Чем больше тем лучше; все остальное может висеть - не страшно (Приложение очень ресурсоемко - счет может длится часами, днями и дольше).
Насколько я понимаю, нужно поднимать приоритет. Читал Рихтера и еще койчего.
Проблемма в том, что даже при установке приоритета реального времени Диспетчер задач показывает не больше 50% ЦП у моей программы (что косвенно подтверждается отсутствием тормозов винды).
Приоритет пробовал устанавливать по-разному, например так:
Может мне кто-нибудь подсказать, как-таки отдать 100% процессора одной программе?
С уважением, Лука.
P.S. Не получится - уйду в Linux! :))
Отправлен: 31.08.2007, 23:01
Вопрос задал: Лука (статус: 9-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Aristos
Здравствуйте, Лука!
Сколько процессоров на вашем компьютере? Или ядер на процессоре? Включен ли hyperthreading? Если процессоров/ядер > 1 или присутствует HT, то однопоточное приложение будет использовать (по данным диспетчера задач) как раз 50% или меньше. Чтобы загрузить систему полностью, необходимо использовать несколько потоков.
Ответ отправил: Aristos (статус: 5-ый класс)
Ответ отправлен: 01.09.2007, 00:44 Оценка за ответ: 5 Комментарий оценки: С плюсом. Это оказался hyperthreading. Отключил его через БИОС - загрузка стала 100%. Правда скорость счета не возросла :(( Видно нужно еще и винду переставлять.
Отвечает: Geograph
Здравствуйте, Лука!
Возможно не нужно замораживать процесс
SuspendThread(pi.hThread);
и
ResumeThread(pi.hThread);
попробуйте убрать эти строки.
Ответ отправил: Geograph (статус: 1-ый класс)
Ответ отправлен: 01.09.2007, 08:35
Отвечает: Shurka
И тебе мир друг!
У тебя случаем проц не двухъядерный?! :))
Чтоб двухголовый проц завесить на 100 надо организовывать параллельные вычисления :) Так то.
C уважением, shurka
Ответ отправил: Shurka (статус: 2-ой класс)
Ответ отправлен: 01.09.2007, 09:29 Оценка за ответ: 4 Комментарий оценки: Нет, не двухъядерный. И процессор один. Зато с hyperthreading ;) Так что, по большому счету ты прав. Спасибо.
Вопрос № 100.421
Здравствуйте, уважаемые Эксперты!
Бывают ли API функции дающие возможность узнать загрузку процессора?
С уважением, Нурлан.
Отвечает: Geograph
Здравствуйте, Нурлан!
Для определения загруженности процессора нужно использовать библиотеку PDH. Вот пример, надеюсь он Вам поможет:
Приложение:
Ответ отправил: Geograph (статус: 1-ый класс)
Ответ отправлен: 02.09.2007, 00:19 Оценка за ответ: 5 Комментарий оценки: Спасибо!