C语言

如何优化C程序性能

时间:2024-04-27 16:19:45 C语言 我要投稿
  • 相关推荐

如何优化C程序性能

  一段c程序,功能开发完成,开始性能优化。下面是小编为大家搜索整理的如何优化C程序性能,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!

  当然是先用 -pg 编译,再gprof看“热点”在哪里,很快找到,是计算hash值的函数,于是换了个更快的hash函数——fnv (http://isthe.com /chongo/tech/comp/fnv/),速度提高了一些。接着把该hash函数内联(inline),程序又快了一些。内联函数不是解决性能问题的灵丹妙药,因为inline之后gprof就看不到该函数的调用情况,也就不好找真正的性能瓶颈了。

  接着把几个常用循环中的变量声明为register,即优先使用寄存器,嗯,有点效果,但不是很明显。管它的,快一点是一点。

  最后把代码部分优化完,改编译参数了:

  将 -O2 改为 -O3 ,跑了单元测试,没问题,性能好一点

  加 -march=nocona ,性能又好一点(因为开发的程序只在服务器上跑,而公司的服务器都装intel的CPU,而且都是新到货,基本都是nocona平台,所以加上没问题)

  加 -minline-all-stringops , 据说这个选项适合含有memset、memcpy语句较多的程序,这个正合我意,加上之后性能有好了一点

  全部优化完了,查询400万的数据,从原先的4.9秒变为4.1秒,16%左右的性能提升,虽然不卓著,但性能就是钱啊,省钱是多么快乐的事啊....

  【相关阅读】

  结构成员访问方法有哪些

  [cpp] view plaincopy

  #include "stdio.h"

  #include "string.h"

  #include

  main ()

  {

  struct student{

  int num;

  char * name;

  int score;

  }stu;

  struct student *p=&stu;

  stu.num=1;

  (*p).name="tom";

  p->score=78;

  printf("%d\n",p->num);

  printf("%s\n",p->name);

  printf("%d\n",p->score);

  }

【如何优化C程序性能】相关文章:

PHP程序性能优化的方法10-29

嵌入式C语言性能优化方法10-22

如何优化C语言(单片机)06-01

C语言如何提高程序效率04-10

c语言入门经典程序08-01

c语言如何设置程序进程执行优先权10-27

C语言程序的实现09-27

c语言链接程序08-26

C语言程序试题04-26

C语言程序改错辅导07-30