bzzz77 0 5 марта, 2011 Опубликовано 5 марта, 2011 · Жалоба день добрый, осваиваю lpc2478, хотел бы понять как на arm принято профилировать и оптимизировать код. скажем запустил я helix mp3 decoder с буферами в sdram. интересно на что такты уходят. на x86 все просто - есть perf counters, покажут и cache miss и branch misprediction, прочее и понятно где можно начинать копать. а что делать на arm? только симулятор? спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 5 марта, 2011 Опубликовано 5 марта, 2011 · Жалоба Можно измерять время выполнения участков кода. Что-то вроде start_timer() и stop_timer(). Если есть сомнения в калибровке таймера, то set_pin_high() и set_pin_low(), а измерение времени - осциллографом на ножке МК. Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzzz77 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба Можно измерять время выполнения участков кода. Что-то вроде start_timer() и stop_timer(). Если есть сомнения в калибровке таймера, то set_pin_high() и set_pin_low(), а измерение времени - осциллографом на ножке МК. Как-то так. про таймеры тоже понятно, конечно. но вообще я еще рассчитывал на "что-нибудь" чтобы позволило оценить не только время исполнения, но накладные расходы на sdram, например. в любом случае спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба про таймеры тоже понятно, конечно. но вообще я еще рассчитывал на "что-нибудь" чтобы позволило оценить не только время исполнения, но накладные расходы на sdram, например. в любом случае спасибо. Ну и кто вам мешает, если очень любопытно, запустить тестовую процедуру в ram и sdram. Померить разницу и быть счастливым? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба В Keil есть Analisis Windows, а именно Logic Anilizer, Performance Analizer, Code Coverage. А также трассировка, а также Execution Profiling. И время выполнения можно засечь в отладчике. Сам почти не пользовался, поэтому насколько это соответствует требуемому, не скажу. На мой взгляд, достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба день добрый, осваиваю lpc2478, хотел бы понять как на arm принято профилировать и оптимизировать код. В lpc2478 есть ETM, нужно всего несколько килодолларов чтобы купить jtag с поддержкой ETM trace :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба До чего все любят усложнять себе (и другим) жизнь! Вы посмотрите на форуме бесконечно: в отладчике работает, на железе - нет. Килобаксы тратить за каким-то. Вам же посоветовали pin_on/pin_off. Осциллографом замерил - точнее не бывает. На собственном железе, с учетом прерываний, реальной настройки железа. Да и измерять вы будете может раз-два. Вперед! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба До чего все любят усложнять себе (и другим) жизнь! Вы посмотрите на форуме бесконечно: в отладчике работает, на железе - нет. Килобаксы тратить за каким-то. Вам же посоветовали pin_on/pin_off. Осциллографом замерил - точнее не бывает. На собственном железе, с учетом прерываний, реальной настройки железа. Да и измерять вы будете может раз-два. Вперед! Вообщето ETM как раз трассирует код в реальном времени без воздействия на процесс, а пиписькомер на осциллографе годится только для кода уровня ножкой топ в ладошки хлоп, никакого анализа сложного кода на нем не сделать - вы никогда не поймете почему происходит задержка - вдияние ОС, промахи кеша или просто неоптимальный код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzzz77 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба Ну и кто вам мешает, если очень любопытно, запустить тестовую процедуру в ram и sdram. Померить разницу и быть счастливым? это можно. а остальное как глядеть? вот тут посоветовали etm - хотя бы почитаю про него. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба это можно. а остальное как глядеть? вот тут посоветовали etm - хотя бы почитаю про него. Почитайте, почитайте. Потом посмотрите сколько это стоит, а потом изучите, работает ли он с вашим компилятором, а потом есть ли etm в вашем процессоре и выведен ли он как надо и прочее. Тогда выяснится, что пиписькомера с осциллографом вам вполне хватит. По крайней мере, на первое время. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzzz77 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба Почитайте, почитайте. Потом посмотрите сколько это стоит, а потом изучите, работает ли он с вашим компилятором, а потом есть ли etm в вашем процессоре и выведен ли он как надо и прочее. Тогда выяснится, что пиписькомера с осциллографом вам вполне хватит. По крайней мере, на первое время. про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 7 марта, 2011 Опубликовано 7 марта, 2011 · Жалоба Меня тоже неприятно удивило отсутсвие в АРМе каких-либо performance counters. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 7 марта, 2011 Опубликовано 7 марта, 2011 · Жалоба В старших (ARM11, Cortex-Ax) есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 7 марта, 2011 Опубликовано 7 марта, 2011 · Жалоба про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать? А что, вы думаете ETM вам про cache miss расскажет? Это во-первых. Во-вторых, не понимаю разговоров про ловлю микросекундных блох в миллисекундных процедурах. Или задача не по зубам выбранному процессору, или алгоритм хромает. А cache miss - дело десятое. Примеров тому не счесть. Вот вчера видел очередной вопрос про AVR, где в main() три переменные float.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 7 марта, 2011 Опубликовано 7 марта, 2011 · Жалоба про осциллограф я пока не понял. вот захотел я узнать места где много времени тратится на доступ к памяти, то есть произошел cache miss. куда я осциллографом буду тыкать? Я думал, речь идёт об LPC2478. Если я правильно помню, никакого кэша там нет. Или это уже просто "разговор за жизнь"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться