关于性能调优的一些思考
经常我们都会抱怨手机好卡、网页打不开等...遇到这种情况还是要淡定,这个对于程序猿来说就是一次大显身手的机会,可以有机会解刨什么造成程序跑的慢导致用户体验不好。用户的投诉那是致命的,如果处理不好就会导致客户流失。 系统出现性能问题,要发现问题所在其实是一个很考量个人能力的事情mssql性能调优,因为它要求你有全面的知识或者协调能力,因为你对整体把握或者认识不足查找最终的原因可能就需要花费更多的时间,时间就是金钱还真不是吹的,用户是等不起的。。。我们还是需要提升自己的综合能力。 性能的参考指标: 执行时间:一段代码从开始运行到运行结束,所使用的时间; CPU时间:函数或者线程占用CPU的时间; 内存分配:程序在运行时占用的内存空间; 磁盘吞吐量:描述I/O的使用情况; 网络吞吐量:描述网络的使用情况; 响应时间:系统对某用户行为或者时间做出响应的时间。响应时间越短,性能越好。 木桶原理与性能瓶颈: 一只木桶盛水的多少,并不取决于桶壁上最高的那块木板,而是取决于桶壁上最短的那块。根据木桶原理,系统的最终性能取决于系统中性能表现最差的组件。因此为了提升系统整体性能,必须对系统中表现最差的组件进行优化,而不是对系统中表现最好的组件进行优化。 最有可能成为系统瓶颈的计算机资源如下:磁盘I/O、网络操作、CPU、异常、数据库、锁竞争、内存。 Amdahl定律 加速比定义:加速比=优化前系统耗时/优化后系统耗时 根据该定律,使用多核CPU对系统进行优化,优化的效果取决于CPU的数量以及系统中的串行化程序的比重。CPU数量越多,串行化比重越低,则优化效果越好。仅提高CPU数量而不降低程序的串行化比重,也无法提高系统的性能。 性能优化层次: 1.设计调优:是需要在软件开发之前进行,架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方案。是一个质的优化。设计人员必须熟悉掌握常用的软件设计方法、设计模式、基本组件和常用优化思想,并将其有机地集成在软件系统中。 2.代码调优:主要是对代码的改进和优化。 3.JVM调优: 4.数据库调优:首先对应用层的SQL语句进行优化;其次对数据库进行优化;再次对数据库软件进行优化; 5.操作系统调优:针对操作系统的优化,还是需要考量知识的全面。 优化的步骤: 首先需要明确的性能目标,清楚地指出优化的对象和最终的目的。其次,需要在目标平台上对软件进行测试,通过各种性能监控和统计工具,观察和确认当前系统是否已经达到相关目标,若已经达到,则没有必要进行优化;若当前系统性能尚未达到优化目标,则需要查找当前的性能瓶颈。 系统优化注意事项: 软件优化需要在软件功能、正确性和可维护性间取得平衡,而不应该过分地追求软件性能。性能调优必须有明确的目标。不要为了调优而调优,如果当前程序并没有明显的性能问题,盲目地进行调整,其风险可能远远大于收益。优化后必须进行全流程的覆盖测试,以防止潜在的BUG。系统优化个人觉得就是在寻找一个平衡点,对客户来说系统可用且稳定、对资源提供者来说以最小的代价换区最大的利润。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |