构建之法读后感之二

  性能分析往往是开发人员容易忽视的步骤,这也是为什么我们一年一年的不停做性能优化的原因,大部分人对嵌入式的实时性和性能要求没有概念。 Visual Studio实际上提供了性能分析工具(Tools\PerformanceTools\Performance Wizard),其中有两种分析方法:Sampling和Instrumentation,即抽样和代码注入,抽样的原理比较简单,kprofile也类似,就是用比较短的周期去采用PC指针,看看是在哪个函数在执行,并把当前周期的时长累计为该函数的执行时长; 代码注入,相当于打点,是将检测的代码加入到每个函数中。

  开发出的软件不仅仅是可以使用,还有一点重要的影响阴虚是软件的性能。软件性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。由于感受软件性能的主体是人,不同的人对于同样的软件能有不同的主观感受,而且不同的人对于软件性能关心的视角也不同。由于目前网络应用非常普遍。记得老师曾讲过一个关于12306网站开发最初版本的根本买不到票的问题,这便是一个直观的案例。当只有一两个人使用时,软件可以运行的很流畅,但当成前上万的人同时购票,系统每开辟一个进程就需要让后面的进程排队等待,这样所产生的等待时间就会很长,这就暴露出了软件性能低下的问题,可以说这样的软件,能够使用,但是因为性能原因不得不进行新一轮升级。

  现阶段我们的编程可能都只专注于能不能用而忽略了算法的时间和空间复杂度这两大重要影响因素,这样是不可取的。

posted @ 2020-06-06 13:54  Protect_Winter  阅读(101)  评论(0编辑  收藏  举报