c程序性能优化
发布日期:2021-06-30 19:20:16
浏览次数:3
分类:技术文章
本文共 537 字,大约阅读时间需要 1 分钟。
一段c程序,功能开发完成,开始性能优化。 当然是先用 -pg 编译,再gprof看“热点”在哪里,很快找到,是计算hash值的函数,于是换了个更快的hash函数——fnv (),速度提高了一些。接着把该hash函数内联(inline),程序又快了一些。内联函数不是解决性能问题的灵丹妙药,因为inline之后gprof就看不到该函数的调用情况,也就不好找真正的性能瓶颈了。 接着把几个常用循环中的变量声明为register,即优先使用寄存器,嗯,有点效果,但不是很明显。管它的,快一点是一点。 最后把代码部分优化完,改编译参数了: 将 -O2 改为 -O3 ,跑了单元测试,没问题,性能好一点 加 -march=nocona ,性能又好一点(因为开发的程序只在服务器上跑,而公司的服务器都装intel的CPU,而且都是新到货,基本都是nocona平台,所以加上没问题) 加 -minline-all-stringops , 据说这个选项适合含有memset、memcpy语句较多的程序,这个正合我意,加上之后性能有好了一点 全部优化完了,查询400万的数据,从原先的4.9秒变为4.1秒,16%左右的性能提升,虽然不卓著,但性能就是钱啊,省钱是多么快乐的事啊.... 转自:
转载地址:https://linuxstyle.blog.csdn.net/article/details/4183105 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月16日 06时54分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【学习笔记】对vanilla的一些个人理解
2019-04-30
【解决错误】The size of tensor a (8) must match the size of tensor b (64) at non-singleton dimension 1
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
超越白皮书8:穿云而过的闪电网络
2019-04-30
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
2019-04-30
JS中document对象和window对象有什么区别
2019-04-30
【python练习题】遍历1
2019-04-30
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30
对于时间复杂度的通俗理解
2019-04-30