架构师之修炼内功篇-系统性能优化

本文聚焦于优化系统性能的核心方法,通过详细分析网络连接瓶颈、数据库优化及代码层面的改进措施,旨在将系统响应时间从100秒降至6秒。重点介绍如何减少客户端与中间件层间的交互次数,优化数据库查询性能,实施网络不稳定情况下的数据缓存策略,以及提升复杂画面绘制的效率。同时,强调了优化过程中的关键步骤和注意事项,包括明确优化目标、跟踪中间层连接必要性、确保缓存数据一致性以及批量保存数据等。

架构师之系统性能优化


----菜鸟Merry Zhang积累过程中


这段时间在做系统的优化。事情的起因是这样的。我们开发的系统需要在分公司使用,而分公司的网络带宽只有专线2M的。我们的系统的层次结构是C/S三层,虽然客户端是Swing开发的Desktop应用,但一样可以在分公司的通过网络连接进行访问,可以做到每次登陆后,实时更新程序。由于网络速度不稳定,导致原来在局域网很快完成的应用,到分公司现场测试时,发现很慢,一个操作需要100多秒(由于后台算法比较复杂,连接中间件和数据的查询次数比较频繁)。根据分析,将瓶颈确定在客户端与中间件层之间,因为此处有远程网络通讯,在中间层与数据库层之间的链接是局域网络。为了优化,需要将精力放在应用层和中间层之间,尽量减少它们之间的交互次数。由于篇幅有限,本文不讲Weblogic和Oracle DB的性能优化,仅从开发代码的角度来讲本系统效率的优化。


具体做法如下

1.根据测试报告中所描述的时间,找出瓶颈所在,确定优化方案,这个很重要,是行动的指南。

2.确定优化目标,例如原来100秒,优化到6秒;

3.分析网络连接点,将能够从服务端可以取出的数据,一次取出,在客户端进行逻辑运算。

4.需要考虑在网络不稳定的情况或异常关机的情况下,对于客户端的未保存的数据进行缓存,保证用户输入数据的安全。

5.对于较为复杂的画面绘制,采用多线程并发,提升效率。

6.除了减少中间层的访问次数,对于查询数据较慢的表格也需要加如Index进行优化。

 

根据上述方法,优化已经基本达到了目标,总结如下

1.优化无止尽,需要找出瓶颈,确定优化目标;

2.优化不仅仅考虑中间层的连接次数,对于数据库的性能优化也同样重要。遇到过原来一个查询需要8000MS,通过数据库和SQL语句的优化,达到了500MS;

3.优化需要结合具体的程序考虑,需要层层跟踪。例如,需要跟踪哪里进行了中间层连接,这个连接是否有必要。

4.利用缓存时候,需要考虑缓存数据的一致性。

5.保存数据,进行批量中间层保存;

6.独立的事务处理可以在PL/SQL里面实现,这样效率最高。


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值