Мне тут недавно порекомендовали.
Performance Application Programming Interface
Может и вам подойдёт.
А вообще для анализа кода есть огромное количество разношёрстного инструмента.
http://en.wikipedia.org/wiki/List_of_performance_analysis_toolsПо поводу ассемблера достаточно выполнить команду
RDTSC
Она вернёт EDX:EAX-число тактов с момента запуска. Такты считаются счётчиком который связан с частотой соизмеримой с частотой процессора.
В многоядерных системах на разных ядрах будут разные показания, а могут быть и одинаковые.
В любом случае поведение зависит от процессора.
Цитата:
И еще такой вопрос. Возможно ли измерить количество тактов, потраченных процессором именно на эту программу, а не на всю систему в целом за время выполнения программы? Ведь планировщик не стоит на месте, и процессор занят не только моей программой, но и множеством других. Может быть нужно как-то повысить приоритет процесса, чтобы процессор был занят только им? И как это сделать?
Советую всё-таки обратить внимание на wiki. Ну можно приоритет поднять. Только вот всё равно большинство ОС не являются ОС РВ и ОС ЖРВ.
Цитата:
точность измерения не превышает 10000 тактов, т.е. на достаточно быстрых программах она выдает просто 0. Также значения функции clock кратны 10000.
Есть поговорка про танцора.
Делаешь свой код в цикле. А вообще наверно надо почитать книжке по метрологии (наука об измерениях).