网站性能优化策略的选择

性能优化到何处为止?
服务器君一共花费了220.499 ms进行了4次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

人生三苦:选择,后悔,绝望。为了避免后两项,所以才绞尽脑汁去做出明智的选择。人人都无时无刻不面临选择。做软件开发的,从初级,到中级,到高级,所掌握的知识和技术越来越多,面临的选项越来越多,对选择进行评估也越来越困难和复杂,一项选择所造成的影响也越来越大。所以,做软件做到架构师,就是和人生三苦之一的“选择”整天打交道的职业。

对于互联网应用网站架构师而言,性能优化是他工作的重中之重。可以这么说,如果不需要考虑性能优化,特别是在经费,人力和时间限制下进行性能优化,那么,在互联网应用软件开发中所遇到的许多问题都不是问题。性能优化到何处为止,采用什么方案,是架构师经常面对的选择之一。如果性能优化不够,那么,网站无法应对用户负载,用户会因为系统反应速度慢而流失,整个项目都可能失败。再者,如果在性能出现问题后再去优化,那么就会面临许多重复工作和软件修改问题,系统越大,修改的工作量也越大。另一方面,也有可能过度追求性能优化,从而造成项目复杂度和开发工作量增大,使得项目完工时间延迟,造成商机贻误的问题。所以,为了帮助架构师做出正确的选择,应当有一些基本原则。

要为决定性能优化到何处为止定下指导原则,就必须对架构师进行性能优化的招数进行分析和分类,只有这样,才能确定这些原则。

通常,架构师进行性能优化的招数可以分为简单招数和复杂招数,简单招数包括,索引,算法,查询优化,缓存,合并数据访问调用从而减少对数据库的访问次数,等等,这些招数,通常会花费不多,又足够有效。

复杂招数呢?有表的垂直分割和水平分割(data partition),数据replication,transaction management优化,使用批处理和代理来代替在线实时处理,等等。所有这些复杂招数都会一定程度的增加软件开发的复杂度,增加工作量。

为什么说这些复杂招数会增加工作量呢?举例来说吧,transaction management优化。在这方面,可做的优化有,使用inline sql transaction,而不是client side transaction,使用auto commit transaction 模式,缩短由于跨语句transaction而造成的transacton lock延时。但是,这时,你就必须考虑到出现异常时transaction不完整而造成的数据不一致给系统造成的影响,这可能会导致编程复杂化。这种做法,在实现一些非关键业务(比如不涉及到金钱等)时也是一种选项。此外,对于分布式的transaction管理,有现成的系统性的方法,比如微软的distributed transaction coordinator(dtc),使用起来也相当的简单方便。但是,dtc因为是通用的解决方案,所以它不可能进行很多优化, dtc通常会使得性能下降一倍左右,如果要处理特别巨大的用户负载,连这方面也可以进行优化,那就是不用这些通用的现成的解决方法,而是根据具体问题设计专门的方法,如果使用专门定制的transaction管理方法,还可以把性能提高50%左右,对于大系统,这也是很可观的提升和节省。

有了对这些招数的分类,那么再根据项目的经费,人力和时间要求的情况,就可以比较容易做出选择了。简单的优化招数,应当尽量的使用,不会造成工作量的过多增加。复杂的优化方法,在经费人力时间紧张时,如果不是涉及最基本的数据,最常用的功能,应当尽量避免。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1858,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1858

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《重来:更为简单有效的商业思维》 贾森•弗里德(Jason Fried) (作者), 大卫•汉森(David Heinemeier Hansson) (作者), Mike Rohde (插图作者), 李瑜偲 (译者)

这本书呈现的是一种更好、更简单的经商成功之道。读完这本书,你就会明白为什么计划实际上百害而无一益,为什么你不需要外界投资人,为什么将竞争视而不见反倒会发展得更好。事实是你所需要的比你想象的少得多。你不必成为工作狂,你不必大量招兵买马,你不必把时间浪费在案头工作和会议上,你甚至不必拥有一间办公室。所有这些都仅仅是借口!

更多计算机宝库...