`

【编程珠玑】第九章 代码调优

 
阅读更多

一,概述

1)代码调优的目的是什么?

减少CPU运行时间;减少分页或增加高速缓存命中率;减少程序所需空间

2)代码调优为什么不能“滥用”?

1>效率的角色:不成熟的优化是大量编程灾害的根源,可能危及程序正确性、功能及可维护性。

2>度量工具:利用性能检测工具,找到“热点”代码,即程序关键区域,然后优化。

3>设计层面:效率问题可以从多个方面进行解决(算法和数据结构、数据结构重组、硬件升级),只有没有更好的解决方案才进行代码优化。

4>双刃剑:有些优化在特定程序中可以提速,但在另外程序中有可能急剧减速。

3)急救方案集锦

1>整数取模(取模运算时间大于加减法执行时间)

k=k%n;

可以替换为

if(k>=n) k=k-n;

2>函数、宏、和内联代码

内联函数和宏具体参见博客http://blog.csdn.net/tianshuai11/article/details/7569659

3>顺序搜索

采用“哨兵” 让循环体不用 每次都判断边界。从而增加了运行速度

将循环展开,替换自增。


替换为


4>计算球面距离

4)大手术---二分搜索

二,习题

3)while 语句的开销 大于 if语句

4)宏 不适合用于递归函数中

5)不排序 进行二分查找,如果找到则肯定存在。找不到也不一定 不存在。

6) isdigit(char c) {if(c>='0' && c<='9'}

例子

7)给定一个非常长的字节序列(假设有十亿或万亿),如何高效的统计1的个数

题意:快速计算整数的二进制表示法中1的个数

分析:转换为二进制然后一个一个求,是不现实的做法。蛮干不是我们想要的结果。


方法一:(算法的时间复杂度就是1的个数)


方法二:



8)在程序中如何使用哨兵找出数组中的最大元素



分享到:
评论

相关推荐

    编程珠玑源码下载编程珠玑书后源代码

    编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码编程珠玑书后源代码

    编程珠玑 编程珠玑 编程珠玑 编程

    我觉得不错,和大家分享! 编程珠玑 编程珠玑 编程珠玑

    编程珠玑源代码

    编程珠玑源代码还有课后习题代码,官方版本

    《编程珠玑》源代码

    《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...

    编程珠玑pdf+源代码

    编程珠玑源码 IT大公司面试必看数据 计算机专业必看经典教材

    编程珠玑编程珠玑

    编程珠玑编程珠玑

    编程珠玑第二版及源代码

    编程珠玑第二版及源代码实现(C/C++) 如果让程序员们列举他们喜欢的书籍,Jon Bentley的《编程珠玑》一定可以归于经典之列。如同精美的珍珠出自饱受沙砾折磨的牡蛎,程序员们的精彩设计也来源于曾经折磨他们的实际...

    编程珠玑 第二版 修订版

    第9章 代码调优 83 9.1 典型的故事 83 9.2 急救方案集锦 84 9.3 大手术——二分搜索 88 9.4 原理 91 9.5 习题 92 9.6 深入阅读 94 第10章 节省空间 95 10.1 关键在于简单 95 10.2 示例问题 96 10.3 数据...

    编程珠玑(续)

    《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...

    编程珠玑 编程珠玑续

    编程珠玑和编程珠玑续两本,上传赚点分,填充填充填充

    《编程珠玑》部分源代码Java实现

    这是《编程珠玑》上用Java实现的源代码,只有几章,其中第一章则较完整把几种方法如位图、归并排序等都实现了。

    编程珠玑之第二章questionC 测试数据

    本资源只是“编程珠玑之第二章questionC: 求变位词问题”的简单的测试数据。

    编程珠玑及其源码

    编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...

    编程珠玑续本

    编程珠玑续、编程珠玑续本、编程珠玑续本、编程珠玑续本

    编程珠玑(第二版)源代码

    编程珠玑 本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨程序员的实际问题展开讨论...

    编程珠玑 中英文 第2版(含源代码)

    编程珠玑 中英文 第2版(含源代码)

    编程珠玑源码

    编程珠玑源代码,

Global site tag (gtag.js) - Google Analytics