DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术

性能优化介绍

      在企业应用开发领域,企业架构与性能将会是一个恒久的话题,如何提高性能、性能优化也将是一个长期和不断改进的过程,有人在硬件投入上下功夫、有人在数据库系统、数据库设计上下功能、有人在系统架构中下功夫、有人在程序下功能,总的来说,性能优化系是一个多方面的综合技术。

性能优化的理论依据

      在计算机领域,缓存技术应该是一个非常久远的技术,CPU设计中高速缓存技术和操作系统内存管理中的分页、分段技术应该是我们每一位开发人员都熟悉的技术,在计算机体系结构与操作系统中,这两个关键点的好坏影响着计算机的整体性能。

      在计算机软件应用中,性能优化的基准原则和最标准的参考案例就是这两个,其他一切的性能化为方案都基于这两个案例的基础理论而展开,这一切的理论依据,也那最经典的“局部性理论”,在计算机世界中是这样触释的:

      “是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。局部性原理又表现为:时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。空间局部性是指一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问

      如果我们把局部性原理再更放得具体化或者更简单一些,就是著名的“二八定律”了,我们可以这么简单的理解:程序中80%的程序运行时间都在执行着20%的程序代码,80%的时间都在频繁的使用着部数据中的20%的数据。

      其实局部性理论,也就是“二八定律”并不单单的存在于计算机世界,我们现实的这个世界也是广泛的遵守着这个规律,我打几个很简单的比喻,这个社会上20%的人持有全社会80%的财产,而剩余的20%的财富由80%的人来分配,再比如,一个企业中起中流砥柱的只有那20%的人,其他80%总是在平庸的渡过。

性能优化的过程

      我们简单的介绍完了性能优化的理论依据,那性能优化应该怎么样去做呢,有没有终极的解决方案和办法,我想告诉大家的是,性能优化没有终极的解决方案和办法,没有能解决所有性能问题的银弹,性能优化将是一个长期坚持并且不段改进的过程,你要优化一个系统,你必须得了解这个系统的运行机制,分析影响当前性能的各个关键点:计算机硬件、网络、数据库、系统架构、程序代码,通过不断的分析找出影响性能的问题点并修正、运行检测并不断的改进的一个过程。

image

 

性能优化的相关技术

      虽然说我们找不到性优化的终极解决方案,但也不是说我们说无从下手进行性能优化,软件系统的性能优化可以从以下几个方面进行考虑:

      A.计算机硬件,这里的计算机硬件是指在企业计算领域中的服务器硬件,如果服务器硬件的运行能力严重的不足,那么我们说性能优化也就是“巧妇难为无米之炊”了,从我的工作经历来看,影响服务器系统运行能力的主要是CPU、内存、IO这三快,在数据库服务器中IO尤为显得重要,这方面可能参考RAID技术,在应用程序服务器中,则是由CPU和内存制约着系统的运行性能。

      B.数据库设计,在抛除了服务器硬件和操作系统,那么数据库系统及数据库的结构将是影响系统性能的一个非常重要的因素,数据表结构设计的好坏将会对系统产生直接的影响,在这个领域的优化将涉及到数据结构、索引优化和数据分区,其目的是最大限度的发布服务器的IO和运算资源。

      C.应用程序,应用程序的设计将直接影响系统的性能,在性能优化上考虑周全的应用程序和没有考虑过性能优化的程序在这方面将会有天壤之别,在这个块的性能优化手段包含两部门内容,一部分在开发应用程序的时间的系统性能考虑、另一方面刚是运营之中的性能优化。

      C.系统架构,我们知道系统架构是系统的一个骨架,他将融合计算机硬件、系统软件、数据库系统、应用程序等各个方面,并基于一个系统工程的统一范畴考试上三方面的性能问题,就其前面三个方面的关键点就是一个有机的整体,相关关联而又相互制作,应用决定了应用程序与数据库设计结构,应用程序必须与数据结构配合以发挥最大性能,而数据库与服务器硬件必须配合以最大化的应用硬件的计算能力。并且,系统架构以整体和统一的思考数据库服务器、应用服务器的的集群与负载均衡。

      关于系统性能优化的这样一个话题我今天就讲到这里,在后续的文章中我会将从以上四个方面展开详细的论述性能优化的方方面面。

      文末我附上我相关系列文章的链接和QQ群,欢迎大家。

链接

DotNET企业架构应用实践-系列目录

一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录

AgileEAS.NET平台开发指南-系列目录

AgileEAS.NET应用开发平台介绍-文章索引

QQ群:116773358

posted @ 2010-10-20 09:01  魏琼东  阅读(3268)  评论(14编辑  收藏  举报