Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не получается загрузить процессор на 100%. / 3 сообщений из 3, страница 1 из 1
26.03.2012, 14:43
    #37723135
diary3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается загрузить процессор на 100%.
Среда: .NET Framework 4
Процессоры: Intel 4-х ядерный и AMD 8-и ядерный.
Приложение создаёт около 80 потоков с разными приоритетами. Потоки время от времени засыпают, просыпаются, меняют себе приоритеты, но всегда активных - более десятка.

На Intel-е загрузка процессора 97%-100%.
На AMD - 70%. (Турбокоры вкл/откл - нет разницы)

Делаю такой финт:
Код: c#
1.
2.
Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0x80;
Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0xFF;


загрузка увеличивается до 100%.

Что бы это значило? Вроде такого быть не должно.
Подскажите, пожалуйста, где копать.
...
Рейтинг: 0 / 0
26.03.2012, 16:08
    #37723378
Ken@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается загрузить процессор на 100%.
diary3,

Ни разу не могу понять, чего вы хотите.
Присвоение Thread.ProcessorAffinity - указание на каком ядре будет выполняться этот поток.
ProcessorAffinity = (IntPtr)0x80 - 4 ое ядро
ProcessorAffinity = (IntPtr)0xFF - а вот эт охрень какая то , ибо


А чем вы замеряли нагрузку, надеюсь не в таск менеджере ?
...
Рейтинг: 0 / 0
26.03.2012, 17:10
    #37723588
diary3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается загрузить процессор на 100%.
Ken@t,

Хочу загрузить AMD-шный процессор "по полной". Но не получается без хитростей.

Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0x80; - совсем не 4-е, а только восьмое ядро.
Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0xFF; - не хрень, а восемь ядер вместе.

Загрузку меряю по разному, но из самого приложения так:
Код: c#
1.
System.Diagnostics.PerformanceCounter("Процессор", "% загруженности процессора", "_Total", "Cluster3_Node02");



В общем, потоки стартуют все, но процессор не нагружают. Всё тихо и спокойно.
Только "передёргиваешь" приложение на одно (всё равно какое) ядро, а потом сразу же снова на все ядра - сразу загрузка вырастает до 100%, температура процессора начинает расти, начинают крутиться вентиляторы.

Теперь, чего я хочу - хочу чтоб загрузка была всегда на 100% без "передёргивания" приложения. Потому что, ИМХО, "бегать по ядрам" не красиво.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не получается загрузить процессор на 100%. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]