Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1134
от 16.10.2008, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 421, Экспертов: 42
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 146799: Как посчитать количество тактов затрачиваемых процессором на выполнение определённого (выбранного) куска кода программы ? Может есть какая-то функция ? Пишу в Visual Studio 2008...

Вопрос № 146.799
Как посчитать количество тактов затрачиваемых процессором на выполнение определённого (выбранного) куска кода программы ? Может есть какая-то функция ? Пишу в Visual Studio 2008
Отправлен: 11.10.2008, 14:03
Вопрос задал: Юрий Анатольевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Alexandr A. Rakunov
Здравствуйте, Юрий Анатольевич!
Это в общем случае невозможно. Т.к. основное время выполнения программы занимает обращение к памяти, а тут все зависит попали или не попали в кеш, разница во времени выборки одного int'а может достигать десятков раз. Собственно и оптимизация программ заключается в первую очередь и в основном в правильной работе с памятью (последовательный доступ, локальность всех требуемых данных и т.д.)
Есть статистические инструменты, наиболее точный из них "Intel(R) VTune(TM) Performance Analyzer" (работает как понимаете только на интеловских процессорах :) ) - он через равные промежутки времени запоминает где находится указатель команд и на основании этого сообщает какая часть кода быстрее/медленнее. Умеет встраиваться в студию.
Для некоторых профайлеров (это название класса подобных программ) нужно строить так называемый "инструментальный" билд, когда в полученный код включаются вызовы функций профайлера (у VTune есть и так ой вариант работы). Но тут всегда большой вопрос, насколько внесенные изменения искажают реальную картину, т.к. на меленьких функциях накладные расходы на замер могу в несколько раз превосходить время выполнения самой функции, а так же полностью искажать картину кеша.
Есть профайлеры встраивающиеся в исполняемый код "на лету", например GlowCode.
К плюсам инструментальных и вообще изменяющих код профайлеров можно отнести возможность подсчёта количества и построения дерева вызовов, что позволяет наглядно оценить узкие места.
Ответ отправил: Alexandr A. Rakunov (статус: 6-ой класс)
Ответ отправлен: 11.10.2008, 14:28


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.6 от 14.10.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru
RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

В избранное