![]() |
|
|
![]()
|
|
| NightWishMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 14.4.2006 Репутация: нет Всего: нет |
Программа, созданная на С++ Builder 6, загружает при работе двохядерный процессор Intel Core 2 Duo 2.33 ГГц максимум на 50% (так показывает Диспетчер задач). По хронологии использования ЦП вижу, что используются оба ядра, но не полностью (оба графика где-то на середине от максимума). Операционка XP SP2 32-х разрядная. Как можно сделать так, чтобы программа использовала процессор на 100 процентов? На сколько понимаю, в этому случае она будет работать вдвое быстрее.
Заранее благодарен за советы. PS. Задача выполняется долго, не думайте, что загружать нечем Это сообщение отредактировал(а) NightWishMaster - 10.12.2007, 14:26 |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
А сколько в программе потоков?
Добавлено через 2 минуты и 32 секунды Что-бы использовать процессор полностью, нужно что-бы программа при старте определила количество процессоров, и запустила нужное количество потоков(по кол. ядер), задача должна быть распаралелена на нужное количество потоков. |
|||
|
||||
| NightWishMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 14.4.2006 Репутация: нет Всего: нет |
Программа построена по принципу MDI - одно основное окно и неограниченное количество дочерних окон. Код всех форм - и основной, и дочерних - по умолчанию выполняется в одном потоке, то есть по очереди. В каждом дочернем окне при воспроизведении в нем звука (а дочерние окна соответсвуют звуковым файлам) для докачки звуковых отсчетов в буферы DirectSound используется еще один поток, но он существует тольки при проигрывании и при остановке закрывается. Выходит, что единственная возможность получить выгоду с двох ядер - это сделать так, чтобы этот поток выполнялся на другом ядре, нежели основной поток программы? А как можно определить, на каком ядре запущен основной поток программы и соответственно на каком ядре запускать вспомагательные потоки? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
| Sharkfire |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 236 Регистрация: 30.11.2006 Где: Одесса Репутация: 2 Всего: 2 |
Важен ещё приоритет патока, если он низкий то винда не даст стока времени что бы убить процессор
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
| NightWishMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 14.4.2006 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |