分析程序的性能有很多方面,如果有WEB程序,可考虑前端,图片,服务器,数据库等等。
经验是必须的,但是善于利用工具是肯定的。
应该是工具和经验相结合。经验更重要一些。.net 应用涉及到GC ,分析性能时比C++应用更困难,需要更多的经验。
性能可以从多个角度去分析,如时间复杂度,空间复杂度,并发性能,可伸缩性,吞吐量等等。分析方法也有多种,有经验的人可以直接看代码的逻辑和结构分析出系统瓶颈,专业测试的人可以用工具测其响应时间、吞吐量等。在系统上线后的情况下,一般是从软件运行时用户的反馈来跟踪相关代码。在代码中可以记录日志,来为确定异常或性能问题提供帮助。在开发阶段,有Debug类和Trace类可以使用。
我觉得软件就像一个大楼,有柱子,有砖瓦,柱子好是基本的,必须的,没啥可炫耀的,难点在于每个砖瓦都是好的,因为砖瓦占了它的99%的工作量,里面有非常多的细小的抉择,这些抉择的质量最终决定了软件的整体质量和性能。