【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

(7)尽量采用查询的方式,少采用计算的方式,注意分析经验数据

做过服务器侧软件的朋友都知道,单个socket的响应时间要尽可能的短,因为这有这样我们才能在短时间内响应更多的用户。如果把宝贵的时间放在一些临时性的计算上面,那么就不大合算了。历史的经验运行数据对于我们进行数据分析是很重要。举一个例子来说:我们知道操作系统分配内存的时候,刚开始的访问要求都是混乱无章的。等到运行一段时间之后,我们的内存就会充斥着更多的内存碎片。此时此刻,即使我们需要获取一块较大的内存都是比较困难的。为了获得我们需要的内存,操作系统不得不把操作系统中暂时使用不到的内存临时放到硬盘上面,等到重新需要的时候再次加载进来,这在无形之中就增加了运行时间,降低了运行效率。如果我们能够从经验数据中得到启发,知道应该在机器开机启动的时候就知道怎样进行数据的分配,短时间内实现机器的最优状态,就可以节省时间,还提高了用户的满意程度。

(8)if-else语句的合理使用
    比如说存在下面一个语句

if(a && b)
{/* 代码处理 */
}else{/* 代码处理 */
}

我们想要处理a && b都为真的情况比较复杂一些。只有a和b都为真的时候,我们才能进入到相应的模块进行处理。但是一般来说,a和b出现的频率是不一样的。此时此刻,我们一般出现频率较高的a放在前面。因为a一旦判断失败,我们就不再需要判断,b的结果对我们此时来说是没有意义的。因此合理调整a和b的顺序也会在无形之中提高我们的运行效率。和这段代码类似的另外一段代码是:

if(a || b)
{/* 代码处理 */
}else{/* 代码处理 */
}

上面这段代码的基本原理和前一段代码是一样的。我们需要把经常出现的情况放在前面,因为一旦a成立,b条件的判断就变得无足轻重了。

(9) 多使用指针
    指针是一把双刃剑,用好了可以事半功倍,我们可以做一个小的测试:

char* strncpy(char* dst, const char* src, size_t size)
{char* pAddress = dst;size_t count = 0;if(NULL == dst || NULL == src || 0 == size){return NULL;}while(count < size){dst[count] = src[count];count++;}return pAddress;}

上面的这段话,我们完全可以写成这样的形式:

char* strncpy(char* dst, const char* src, size_t size)
{char* pAddress = dst;if(NULL == dst || NULL == src || 0 == size){return NULL;}while(size-- > 0){*dst ++ = *src ++;}return pAddress;
}

因为不管是什么样的数组,都要经过起始地址、偏移值、取值三个步骤。而指针是比较直接的,通过不断的指针递增,可以省略中间取首地址、偏移数值的过程,快速实现数值的复制。

(10)  优化算法是提高代码效率很重要的一个环节
    我们都知道快速排序、堆排序是解决排序问题的重要方法,但是它需要很大的内存,主要来自于堆栈的不确定性。所以如果开发排序功能且数据比较庞大的话,我们完全有机会实现这样的优化。另外一个算法的优化就是我们可以把平时运行过程中不是特别紧急的任务降低运行的优先级,比如说可以干一会休息一会,10秒钟就sleep一下,这样就可以把宝贵的时间留给业务的处理。当然,这种优化与其说是算法的优化,不如说是流程的优化。

后注:
    优化是以牺牲代码的可移植性、降低代码的阅读性作为代码的。代码的优化也不仅仅是以上的提到的几种方法。就我个人的经验而言,我觉得可以从下面几个方面综合进行考虑:a)提高硬件的配置。只要银子允许,我们就可以在短期内实现效率的大幅提升,当然它的提高也是有局限性的。b)优化流程,我们的代码经常需要添加新的功能,就会在不知不觉当中添加很多判断、申请很多资源,甚至重复做一些无意义的操作,这在很大程度上降低了我们代码的运行效率,如果把握的好,重新对项目或者版本进行功能上的梳理,随之而来的效率提升甚至不亚于第一种方法,这是一种降低成本的好方法,当然需要软件架构师的精确把握和控制。c)提高代码编写技巧,优化代码,这方面需要时间,也需要进行总结。做得好效果显而易见,做得不好反而降低了原来的工作效率。

(全文完)

提高代码的运行效率 (4)相关推荐

  1. 提高代码的运行效率(2)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 2. 在编写的代码的时候,我们强调需要对循环首先进行循环内部的计算,然后进行循环外面的计算.在 ...

  2. 提高代码的运行效率(1)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在下面的blog当中,我将会讲解一些提高个人代码效率的一些手段.这些手段都是被实践证明,切实可 ...

  3. 提高代码的运行效率 (3)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 4.编译的时候,我们习惯于在头文件中包含很多其他的文件,不管他们对我们是有用还是没有用,殊不知 ...

  4. 提高代码质量的那些建议

    程序员跟各行各业的手艺人一样,都是靠自己的作品吃饭.所以要想获得高收入和业界的认可就要不断的学习提高自己的业务水平.这里我总结了一些程序员提升代码质量的建议希望能对你的进阶有帮助. 1.提高代码的复用 ...

  5. 如何提高代码能力:程序员的成长之路(上)

    作为一名程序员,不仅需要具备一定的编程技术和知识,还需要不断提高自己的代码能力.代码能力是程序员在编写.阅读.理解和维护代码时所需要的技能和素养,它直接影响着程序员的工作效率.代码质量和职业发展.那么 ...

  6. 分享9个提高代码运行效率的小技巧

    学习之余看到的一片文章,转载出来,经常看看,好处多多! 我们写程序的目的就是使它在任何情况下都可以稳定工作.一个运行的很快但是结果错误的程序并没有任何用处.在程序开发和优化的过程中,我们必须考虑代码使 ...

  7. 程序人生:提高代码运行效率的9个技巧

    我们写程序的目的,就是使它在任何情况下都可以稳定工作.一个运行的很快但结果错误的程序,并没有任何用处.在程序开发和优化的过程中,我们需要考虑代码使用的方式,以及影响它的关键因素.通常,我们要在程序的简 ...

  8. Java 性能优化:教你提高代码运行的效率

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:五月的仓颉 cnblogs.com/xrq730/p/486 ...

  9. 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率

    技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,体现也会在优秀程序员在工作效率提升,产品性能优化和用户体验改善等小技巧方面的分享,以提高我们的工作能力 ...

最新文章

  1. 多个模型在测试集上的Accuracy以及AUC指标可视化对比实战
  2. CoGAN pytorch
  3. 用MATLAB作图像识别所需要注意的细节!
  4. pytorch Tensor的操作和Numpy之间的转化(三)
  5. 并行批处理多个文件 matlab
  6. tomcat webapps目录文件都能删吗_详细测试实现Tomcat根域名访问的场景,看这篇文章就够了...
  7. 点钞机语音怎么打开_原来微信语音一样能转发? 居然还有人不知道
  8. XMLDOM的CComPtr的例程
  9. java 显示转换_日志logback.xml配置中的转换说明符,你知道几个?
  10. pip安装包下载与安装
  11. Python超市商品管理系统
  12. GPS地图坐标转百度地图坐标
  13. 大大学校园计算机市场分析,笔记本电脑大学生市场调研报告
  14. 想自由查看自己网站每个页面流量情况?这个工具可以满足需求!
  15. Zepto课程-张晓飞-专题视频课程
  16. GAN 论文浅读心得体会-未完
  17. 惠普暗影精灵6-开机显示非惠普原装电池(win11)
  18. 基本sctp套接字编程及实例讲解
  19. vlc 安卓版开发_VLC播放器Android版下载
  20. 矢量线八方向和全方向栅格化算法C#实现

热门文章

  1. 企业或将借助OA走出经济危机
  2. Ubuntu8.10安装小记
  3. vi-vim :删除、撤销、恢复删除、复制删除
  4. Oracle使用小结
  5. Java基础之PDF文件的合并
  6. NEFU_117素数个数的位数
  7. C#:foreach语句,yield语句
  8. flash flip 效果集
  9. 面向对象的javascript-引用、作用域、闭包、上下文--(1)
  10. VC 写 TXT 文件分割器 附代码