|
|
  |
профилирование и оптимизация на arm |
|
|
|
Mar 5 2011, 21:25
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260

|
день добрый,
осваиваю lpc2478, хотел бы понять как на arm принято профилировать и оптимизировать код. скажем запустил я helix mp3 decoder с буферами в sdram. интересно на что такты уходят. на x86 все просто - есть perf counters, покажут и cache miss и branch misprediction, прочее и понятно где можно начинать копать. а что делать на arm? только симулятор?
спасибо
|
|
|
|
|
Mar 6 2011, 06:32
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260

|
Цитата(scifi @ Mar 6 2011, 01:20)  Можно измерять время выполнения участков кода. Что-то вроде start_timer() и stop_timer(). Если есть сомнения в калибровке таймера, то set_pin_high() и set_pin_low(), а измерение времени - осциллографом на ножке МК. Как-то так. про таймеры тоже понятно, конечно. но вообще я еще рассчитывал на "что-нибудь" чтобы позволило оценить не только время исполнения, но накладные расходы на sdram, например. в любом случае спасибо.
|
|
|
|
|
Mar 6 2011, 19:59
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260

|
Цитата(sergeeff @ Mar 6 2011, 14:29)  Ну и кто вам мешает, если очень любопытно, запустить тестовую процедуру в ram и sdram. Померить разницу и быть счастливым? это можно. а остальное как глядеть? вот тут посоветовали etm - хотя бы почитаю про него.
|
|
|
|
|
Mar 6 2011, 21:01
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 16-01-11
Пользователь №: 62 260

|
Цитата(sergeeff @ Mar 6 2011, 23:51)  Почитайте, почитайте. Потом посмотрите сколько это стоит, а потом изучите, работает ли он с вашим компилятором, а потом есть ли etm в вашем процессоре и выведен ли он как надо и прочее. Тогда выяснится, что пиписькомера с осциллографом вам вполне хватит. По крайней мере, на первое время. про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать?
|
|
|
|
|
Mar 7 2011, 07:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(bzzz77 @ Mar 7 2011, 00:01)  про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать? А что, вы думаете ETM вам про cache miss расскажет? Это во-первых. Во-вторых, не понимаю разговоров про ловлю микросекундных блох в миллисекундных процедурах. Или задача не по зубам выбранному процессору, или алгоритм хромает. А cache miss - дело десятое. Примеров тому не счесть. Вот вчера видел очередной вопрос про AVR, где в main() три переменные float....
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|