c/c++每条指令和函数的执行时间是多少
1个回答
展开全部
你需要用高精度时间来测定,指令执行前取时间,执行后取时间,前后时间差 再扣除 测时间的时间消耗。不同的指令和函数的执行时间是不同的。
高精度时间可用 cpu 实时时间图章:
__forceinline unsigned _int64 My_clock(void)
{
_asm _emit 0x0F
_asm _emit 0x31
}
unsigned _int64 Start(void) { return My_clock();}
unsigned _int64 Stop(unsigned _int64 m_start, unsigned _int64 m_overhead)
{return My_clock()-m_start - m_overhead; }
程序中你可以用这3个函数。
测时间的指令自身需要的时间消耗:
unsigned _int64 m_start=0, m_overhead=0;
m_start = My_clock();
m_overhead = My_clock() - m_start - m_overhead;
printf("overhead for calling My_clock=%I64d\n", m_overhead);
编译器: MS VC++ 6.0
高精度时间可用 cpu 实时时间图章:
__forceinline unsigned _int64 My_clock(void)
{
_asm _emit 0x0F
_asm _emit 0x31
}
unsigned _int64 Start(void) { return My_clock();}
unsigned _int64 Stop(unsigned _int64 m_start, unsigned _int64 m_overhead)
{return My_clock()-m_start - m_overhead; }
程序中你可以用这3个函数。
测时间的指令自身需要的时间消耗:
unsigned _int64 m_start=0, m_overhead=0;
m_start = My_clock();
m_overhead = My_clock() - m_start - m_overhead;
printf("overhead for calling My_clock=%I64d\n", m_overhead);
编译器: MS VC++ 6.0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询