реклама на сайте
подробности

 
 
> Как определить загруженность процессора, при выполнении программы?
Pasha 111
сообщение Jul 21 2006, 08:01
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Есть программа, вот с такой функцией main:
void main()
{
Init();
while(1) ;
}

Вся остальная программа выполняется по срабатыванию прерываний от ножек процессора и таймера, работающего на частоте 500 Гц. Вопрос: как определить, например в процентах, какая часть процессорного времени уходит на выполнение кода, кроме while(1) в main'е.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pasha 111
сообщение Jul 21 2006, 08:30
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



iit, от симулятора не будет толка, потому что выполнение программы зависит от внешних условий.

beer_warrior, функция тамера вызывается 500 раз в секунду, но время её выполнения зависит от внешних факторов.

Интересует не просто врем выполнения программы и, как было сказано, выявление узких мест, а именно на реальном процессоре в реальных условиях постоянно мониторить занятость процессора (как в таск баре в windows)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 21 2006, 08:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Pasha 111 @ Jul 21 2006, 11:30) *
а именно на реальном процессоре в реальных условиях постоянно мониторить занятость процессора (как в таск баре в windows)

Абсолюно бесполезная рюшечка - толку Вам будет от такого индикатора показывающего, что
в течении времени интеграции доступного к наблюдению человеком (сотни миллисккунд-секунды) процессор был загружен на 0 челых хреен десятых процента, если он при этом реально захлебывался несколько тактов таймера.
Практическое значение в такой системе, как Ваша (сужу по вечному циклу вместо операционной системы могущей как-то разбираться с нехваткой ресурсов) похоже может иметь только наличие фатальной нехватки времени, например (ну не сочли нужным Вы сообщить подробности) можете запрограммировав счетчик таймера на "ручной" сброс и читая/cбрасывая его в обработчике прерывания можете получить величину на которую "перетянули" остальные обработчики таймерное прерывание.
Задаете допустимые с Вашей точки зрения отступления от "временной оси" и ругаетесь на превышение.
Это явно работать будет при отсутствии ввложенных прерываний и нижайшем приоритете таймерного. В других условиях думайте сами, или формулируйте правила игры.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pasha 111   Как определить загруженность процессора   Jul 21 2006, 08:01
- - iit   Цитата(Pasha 111 @ Jul 21 2006, 11:01) Ес...   Jul 21 2006, 08:12
- - beer_warrior   Если длительность прерывания таймера вполне поддае...   Jul 21 2006, 08:18
- - KRS   Можно осцилографом, на глаз? если есть свобожная н...   Jul 21 2006, 08:28
- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:01) Во...   Jul 21 2006, 08:29
|- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:30) а ...   Jul 21 2006, 08:33
- - Pasha 111   KRS, Alechek, а если без внешних приборов? Чтобы б...   Jul 21 2006, 08:33
|- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:33) KR...   Jul 21 2006, 08:35
|- - KRS   Цитата(Pasha 111 @ Jul 21 2006, 12:33) KR...   Jul 21 2006, 09:12
- - Pasha 111   Alechek, не думаю, что АЦП в этом случае правильно...   Jul 21 2006, 08:43
- - Pasha 111   zltigo, программа работает так: инициализируются п...   Jul 21 2006, 09:19
|- - klen   Предлагаю такую вариацию решения (если есть 1 своб...   Jul 21 2006, 14:54
|- - zltigo   Цитата(Pasha 111 @ Jul 21 2006, 12:19) и ...   Jul 21 2006, 17:01
- - Abo   Ой, не советовал бы я энкодеры на прерывания вешат...   Jul 21 2006, 16:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016