|
Что означает процент загруженности процессора? | ☑ | ||
---|---|---|---|---|
0
Lama12
23.06.15
✎
10:45
|
Подтолкните в нужном направлении пожалуйста. процент чего показывает диспетчер задач и другие инструменты отображающие загрузку процессора?
Т.е. что это за процент и процент чего и от чего? |
|||
1
Гёдза
23.06.15
✎
10:46
|
максимум может делать 100 операций в сек а делает 15
|
|||
2
Lama12
23.06.15
✎
10:48
|
(1) А кто и как эти операции считает и почему нельзя выполнить следующие операции? Или стоим ждем ответов от других устройств?
|
|||
3
Остап Сулейманович
23.06.15
✎
10:51
|
(2) "ждем ответов от других устройств?" йес.
Ну и еще для многоядерных считается производительность всех ядер. А по факту для однопоточных приложений (как-то 1С) работает только одно ядро. Но на сто процентов. В итоге для 4-х ядерного нагрузка будет 25%. |
|||
4
Гёдза
23.06.15
✎
10:54
|
(2) Ожидание (нормально реализованное) не загружает процессор.
Классический пример с блокировками. Все тормозит, а оборудование не загружено |
|||
5
Lama12
23.06.15
✎
10:55
|
(3) Т.е. если написать программу которая будет работать только с данными помещающимися в процессорный кэш или вообще в регистры и, допустим, поставить ее в цикл с прерыванием через минуту, то на минуту загрузка будет 100%?
|
|||
6
Lama12
23.06.15
✎
10:55
|
(4) С блокировками понятно. Допустим что их нет.
|
|||
7
Маратыч
23.06.15
✎
10:56
|
(5) Зависит от программы, но в общем случае да.
|
|||
8
Гёдза
23.06.15
✎
10:57
|
(2) См понятие очередь процессора
|
|||
9
Lama12
23.06.15
✎
10:57
|
(7) Ага.. тогда понятно. Могу предположить, что счетчик операций аппаратный. Иначе не представляю как можно программно считать количество команд.
|
|||
10
Остап Сулейманович
23.06.15
✎
11:02
|
(4) "Ожидание (нормально реализованное) не загружает процессор."
Вы за какое "ожидание"? Например прерывание обслуживания диска имеет наивысший приоритет и полностью останавливает работу (как минимум одного ядра) до получения ответа от контроллера. Прерывание от мышки или клавиатуры - это да... становится в очередь на обслуживание в конце всех приоритетов. От таймера - приоритет уже забыл...((( |
|||
11
Маратыч
23.06.15
✎
11:02
|
(9) За один такт выполняется максимум N операций для определенного процессора. Количество тактов известно, количество операций известно. Что тут считать? :)
|
|||
12
Фрэнки
23.06.15
✎
11:03
|
(9) Смотря в какой оси это считать. В win дает только общее представление, а точных цифр не показывает. Смысл только в том, что дает увидеть "Отвечает" и "Не отвечает"
Когда не отвечает, то и степень его нагрузки на процессор не может быть определена. |
|||
13
Маратыч
23.06.15
✎
11:03
|
(10) Эээм... а как же DMA? :))
|
|||
14
Lama12
23.06.15
✎
11:06
|
(11) Но это через максимум. Т.е. приблизительно. Получается процент приблизительный?
|
|||
15
Остап Сулейманович
23.06.15
✎
11:07
|
(13) Причем здесь ДМА? Ну позволяет запись в буфер, а не в порты и че? Даже у современных дисков буфер не бесконечен. И посылать на запись очередную порцию данных возможно только после получения флага контроллера о том, что буфер доступен на запись. Вот обработчик прерывания и ждет пока получит этот флаг от контроллера.
|
|||
16
Фрэнки
23.06.15
✎
11:07
|
(14) И очень-очень приблизительный.
|
|||
17
Фрэнки
23.06.15
✎
11:08
|
(14) У тебя же вопрос внутри Windows ?
|
|||
18
Остап Сулейманович
23.06.15
✎
11:09
|
(14) Конечно приблизительно. Очень мало операций, которые выполняются за один такт. Я конечно точно не знаю, но видимо в расчет принимается какая-то средняя длина команды в тактах.
|
|||
19
Lama12
23.06.15
✎
11:09
|
(16) Хы... тогда понятно :) (17)Ага.
Я просто понять не мог как он команды считает это ж отдельное процессорное время тратить нужно. А если все косвенно считать... то ясно. |
|||
20
Остап Сулейманович
23.06.15
✎
11:12
|
+ (18) Видимо средняя длина команды отличается для разных типов приложений. Потому и бенчмарки существуют всякие и оценивают быстродействие в конкретных типах приложений.
|
|||
21
Гёдза
23.06.15
✎
11:19
|
||||
22
Гёдза
23.06.15
✎
11:20
|
Винда так устроена, что обычные оконные приложения могут работать только когда к ним приходят какие-то сообщения (обрабатывать их), а когда обрабатывать уже нечего, оставшееся время Винда крутит пустой цикл. Вот длительность работы этого пустого цикла по отношению ко всему времени работы процессора и есть его незагруженность. Естественно, если какое-то приложение запустит поток, который постоянно будет что-то считать (например, архиватор сжимать какие-то данные), то свободного времени (на однопроцессорной машине) уже не остается.
|
|||
23
Lama12
23.06.15
✎
11:22
|
(22) спс
|
|||
24
Провинциальный 1сник
23.06.15
✎
11:29
|
(22) "а когда обрабатывать уже нечего, оставшееся время Винда крутит пустой цикл"
Немного не так. Холостых циклов нет, есть останов в ожидании прерывания от таймера (ну или от устройства). Именно поэтому винда в простое греет процессор намного меньше, чем обычный пустой цикл. |
|||
25
Гёдза
23.06.15
✎
11:29
|
(24) Это в приближении. Более подробно как работает процесс idle можно найти в инете
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |