第二篇 ARM C 高效编程 - 四则运算速度

四则运算

  • 四则运算:加减乘除
  • 对于不同的数据类型来说,四则运算速度皆为 无符号 > 有符号 > 单浮点
  • 加减乘法运算速度无太大差异
  • 除法运算耗时为加减乘法2倍~3倍之间
#include 
#include 
#include 

uint64_t get_clock_us(void)
{
    uint64_t us = 0;
    uint64_t sec = 0;
    struct timespec timespec;
    clock_gettime(CLOCK_MONOTONIC, &timespec);

    sec = timespec.tv_sec;
    us += sec * 1000000;
    us += timespec.tv_nsec / 1000;
    return us;
}

// * run on rv1126(4核 A7), cost 86298us
float add(float x)
{
	return x + 3.0;
}

// * run on rv1126(4核 A7), cost 83573us
float sub(float x)
{
	return x - 3.0;
}

// * run on rv1126(4核 A7), cost 74880us
float mul(float x)
{
	return x * 3.0;
}

// * run on rv1126(4核 A7), cost 178625us
float div(float x)
{
	return x / 3.0;
}

int main(void)
{
	int i = 0;
	float sum = 0;
    uint64_t s = get_clock_us();
	for (i = 0; i < 10000000; i++) {
		sum += add(i);
	}
    printf("cost %"PRIu64 "us\n", get_clock_us() - s);
    printf("sum is %f\n", sum);
	return 0;
}

你可能感兴趣的:(ARM-高效C编程,arm,c语言)