亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

如何優(yōu)化C程序性能

時間:2025-11-08 05:49:59 C語言

如何優(yōu)化C程序性能

  一段c程序,功能開發(fā)完成,開始性能優(yōu)化。下面是小編為大家搜索整理的如何優(yōu)化C程序性能,希望大家能有所收獲,更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  當(dāng)然是先用 -pg 編譯,再gprof看“熱點(diǎn)”在哪里,很快找到,是計算hash值的函數(shù),于是換了個更快的hash函數(shù)——fnv (/pic/chongo/tech/comp/fnv/),速度提高了一些。接著把該hash函數(shù)內(nèi)聯(lián)(inline),程序又快了一些。內(nèi)聯(lián)函數(shù)不是解決性能問題的靈丹妙藥,因?yàn)閕nline之后gprof就看不到該函數(shù)的調(diào)用情況,也就不好找真正的性能瓶頸了。

  接著把幾個常用循環(huán)中的變量聲明為register,即優(yōu)先使用寄存器,嗯,有點(diǎn)效果,但不是很明顯。管它的,快一點(diǎn)是一點(diǎn)。

  最后把代碼部分優(yōu)化完,改編譯參數(shù)了:

  將 -O2 改為 -O3 ,跑了單元測試,沒問題,性能好一點(diǎn)

  加 -march=nocona ,性能又好一點(diǎn)(因?yàn)殚_發(fā)的程序只在服務(wù)器上跑,而公司的服務(wù)器都裝intel的CPU,而且都是新到貨,基本都是nocona平臺,所以加上沒問題)

  加 -minline-all-stringops , 據(jù)說這個選項(xiàng)適合含有memset、memcpy語句較多的程序,這個正合我意,加上之后性能有好了一點(diǎn)

  全部優(yōu)化完了,查詢400萬的數(shù)據(jù),從原先的4.9秒變?yōu)?.1秒,16%左右的性能提升,雖然不卓著,但性能就是錢啊,省錢是多么快樂的事啊....

  【相關(guān)閱讀】

  結(jié)構(gòu)成員訪問方法有哪些

  [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);

  }

【如何優(yōu)化C程序性能】相關(guān)文章:

PHP程序性能優(yōu)化的方法12-06

如何優(yōu)化C代碼09-26

嵌入式C語言性能優(yōu)化方法10-06

如何運(yùn)行C++程序11-08

C語言程序的內(nèi)存如何布局11-19

Java程序如何調(diào)用C/C++語言函數(shù)11-15

如何優(yōu)化C語言(單片機(jī))01-10

PHP性能優(yōu)化的技巧11-24

PHP性能優(yōu)化技巧02-22