Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 458
от 06.09.2007, 14:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 411, Экспертов: 38
В номере:Вопросов: 2, Ответов: 4


Вопрос № 100402: Мир вам, уважаемые эксперты! Мне необходимо максимизировать аппаратные ресурсы, выделяемые windows моей программе. Чем больше тем лучше; все остальное может висеть - не страшно (Приложение очень ресурсоемко - счет может длится часами, днями и дол...
Вопрос № 100421: Здравствуйте, уважаемые Эксперты! Бывают ли API функции дающие возможность узнать загрузку процессора? С уважением, Нурлан. ...

Вопрос № 100.402
Мир вам, уважаемые эксперты!
Мне необходимо максимизировать аппаратные ресурсы, выделяемые windows моей программе. Чем больше тем лучше; все остальное может висеть - не страшно (Приложение очень ресурсоемко - счет может длится часами, днями и дольше).
Насколько я понимаю, нужно поднимать приоритет. Читал Рихтера и еще койчего.
Проблемма в том, что даже при установке приоритета реального времени Диспетчер задач показывает не больше 50% ЦП у моей программы (что косвенно подтверждается отсутствием тормозов винды).
Приоритет пробовал устанавливать по-разному, например так:

SuspendThread(pi.hThread);
SetPriorityClass(pi.hProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(pi.hThread, THREAD_PRIORITY_TIME_CRITICAL);
ResumeThread(pi.hThread);

где pi - TProcessInformation

Может мне кто-нибудь подсказать, как-таки отдать 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 функции дающие возможность узнать загрузку процессора?
С уважением, Нурлан.
Отправлен: 01.09.2007, 10:52
Вопрос задал: Nyrlan Ilubaev (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Geograph
Здравствуйте, Нурлан!
Для определения загруженности процессора нужно использовать библиотеку PDH. Вот пример, надеюсь он Вам поможет:

Приложение:

Ответ отправил: Geograph (статус: 1-ый класс)
Ответ отправлен: 02.09.2007, 00:19
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 30.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное