免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11489 | 回复: 56
打印 上一主题 下一主题

提高c代码的执行效率的方法有哪些? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-25 17:13 |只看该作者 |倒序浏览
提高c代码的执行效率的方法有哪些?最近写了一个程序,同样结构和功能,只是其中的变量的定义方式不同,但程序的执行效率却又天壤之别!能相差10倍!!!
所以,想问问怎样写c代码,可以让代码的执行效率更高?

论坛徽章:
0
2 [报告]
发表于 2012-04-25 17:23 |只看该作者
少用乘法除法,减少循环,在时间复杂度和空间复杂度中根据需求找一个平衡点

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
3 [报告]
发表于 2012-04-25 17:24 |只看该作者
什么样的不同导致的,能贴出来看看不?

论坛徽章:
0
4 [报告]
发表于 2012-04-25 17:26 |只看该作者
teclimber 发表于 2012-04-25 17:13
提高c代码的执行效率的方法有哪些?最近写了一个程序,同样结构和功能,只是其中的变量的定义方式不同,但程 ...


同求代码

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
5 [报告]
发表于 2012-04-25 17:28 |只看该作者
最烦这种三无帖。

提这种问题,能不能先把你的两种代码先拿出来。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2012-04-25 17:33 |只看该作者
rqzrqh 发表于 2012-04-25 17:23
少用乘法除法,减少循环,在时间复杂度和空间复杂度中根据需求找一个平衡点


整数的加、减、乘法对于x64平台是完全一样的,除法很慢,该死的除法器太难做了

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
7 [报告]
发表于 2012-04-25 17:35 |只看该作者
1) 还正在入门C语言的是第一个境界
2) 像解毒专家,什么waterloo,什么幻圈上帝,那些纠结于语言的表达能力的,是第二个境界。
3) 不怎么关心语言,只关注于事物原本逻辑的,是第三个。
4) 不仅搞清楚了事物原本的逻辑,而且代码中还关注时间局部性,空间局部性这些计算机的本质特征,是第四个。

程序啥都没变,但是按照这两个局部性精心排列的程序,可能执行速度快N多倍。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
8 [报告]
发表于 2012-04-25 17:37 |只看该作者
回复 7# 塑料袋

你就直接说自己达到最高层次得了,这么婉转不符合你的风格啊大湿

论坛徽章:
0
9 [报告]
发表于 2012-04-25 17:39 |只看该作者
回复 6# safedead


总之从算法上进行修改效果最明显,然后才是语句细节上的修改。
浮点计算也尽量不用,需要时转化成整数,当年的面试问题就问到过这问题

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
10 [报告]
发表于 2012-04-25 17:41 |只看该作者
OwnWaterloo 发表于 2012-04-25 17:37
回复 7# 塑料袋

你就直接说自己达到最高层次得了,这么婉转不符合你的风格啊大湿


我这会记性不好,忘记说了,其实是的。

但是也许以后还有更高的层次,但是我还没有达到,也不知道。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP