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


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。


    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/10/20/1855496.html,如需转载请自行联系原作者

相关文章
|
13天前
|
机器学习/深度学习 API 语音技术
|
7天前
|
消息中间件 运维 监控
现代化软件开发中的微服务架构设计与实践
本文将深入探讨现代化软件开发中微服务架构的设计原则和实践经验。通过分析微服务架构的优势、挑战以及常见的设计模式,结合实际案例,帮助开发者更好地理解如何构建可靠、可扩展、高效的微服务系统。
|
7天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
8天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
8天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
43 0
|
10天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1230 8
|
11天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
32 10
|
3天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
16天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
20 0