提升你的java应用性能:改善数据处理-java开发java经验技巧

提升你的java应用性能:改善数据处理-java开发java经验技巧

ID:32984799

大小:56.36 KB

页数:4页

时间:2019-02-18

提升你的java应用性能:改善数据处理-java开发java经验技巧_第1页
提升你的java应用性能:改善数据处理-java开发java经验技巧_第2页
提升你的java应用性能:改善数据处理-java开发java经验技巧_第3页
提升你的java应用性能:改善数据处理-java开发java经验技巧_第4页
资源描述:

《提升你的java应用性能:改善数据处理-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、提升你的Java应用性能:改善数据处理-Java开发Java经验技巧提升你的Java应用性能:改善数据处理木文由ImportNew■唐尤华翻译自deepakgaikwado欢迎加入翻译小组。转载请见文末要求。许多应用程序在压力测试阶段或在生产环境中都会遇到性能问题。如杲我们看一下性能问题背后的原因,会发现很多是由数据处理不当造成。数据处理在应用而对大数据量时是非常关键的。这里有一些实用的数据处理技巧可以帮助更好地提升Java应用程序性能。减少数据传输在任何Java应用程序屮,方法调用要么是为调用方完成某项任务,要么是对输入

2、数据进行处理。这两个目标都需要在调用者和处理方法之间进行数据交换。关于最小化函数传入和输出的数据量有一个经验之谈:数据越小好处越多。比如越小的数据处理就越少,需要清理的对象越少,内存的占用也更少等等。程序设计应当努力减少不同方法、层次和应用程序Z间,甚至组织Z间的数据传递。通过下而将要讨论的源端数据处理可以达成这个目标。延迟加载延迟数据加载是指直到实际需要最后一刻才从数据存储中获取数据。在面对重量级对彖时这是非常有益的。例如有一个存储在数据库小的文件实体,文件包含blob以及与其他属性。blob大小可以从儿KB到儿十兆。中

3、间层逻辑在显示文件内容Z前都只依赖于其他属性。使用延迟加载可以用來处理这个blob属性。不断重复数据调用当进行远程调用时,从数据提供者反复调用取得数据会严重影响性能,比如数据库调用、Web服务调用或者其他编解码调用。这种情况下可以使用Facade模式一次获得所有所需的数据,尽可能减小连接成本和在网络上传输数据的成本。高速缓冲经常使用但不经常变化的数据可以进行缓存,通常需要缓存的是静态或者服务端数据。如今,对应用事务数据也有很高的要求,这些数据也需要加入缓存。作为一个简单的规则,在设计应用程序时经常需要识别这类实体并缓存到合

4、适的位置,通常这些实体不会频繁改变甚至根木不会变化。刷新对象时也可以采用这个规则。在源端处理数据在数据源或存储位置本身进行处理是一个好习惯。将大量数据发送给客户端然后再进行处理需要传输成本,而且有时客户端的处理逻辑会改变数据格式。例如在oracle屮过滤数据比较简单,只要为查询添加一个WHERE子句即可。而在Java程序中过滤这么数据需要先获取记录再逐行挨个属性进行比较。因此用Java可能不是最佳实现。尽可能减少数据转换和避免不正确的数据类型将数据从一种格式转换到其他格式需要转换成木。对单个值进行转换消耗的性能可能微不足道

5、,但如果记录个数成T上万性能问题就十分明显。例如选择String数据类型的值,并把它转换为double或其他基木类型,反Z亦然。保持数据的正确采集从性能的角度來看,这是一个非常重要的考虑因素。Java已经提供了不同的集合以满足不同的需求,例如冇几种原始的集合,比如ArrayList,伤〈可以不断向ArrayList添加数据并口集合本身不会对数据进行任何操作。再比如Vector提供了同步的操作。我需要在插入数据吋保持同步吗?这是一个很好的问题。如果不需要同步那么就不要使用Vector,使用ArrayList或根据要求选择他集

6、合。对数据处理算法进一步优化有时候性能问题是数据处理算法或实现逻辑造成的。实现逻辑应该将性能作为要求达到的一个口标,像是内存占用等。通过以下几个方法可以使算法进一步优化:•优化开销很人的调用和数据库循环调用•优化循环里的对象声明•避免不必要的嵌套循环•将对象存储到多个集合Finalize重型数据对象我们不能保证会立即执行垃圾收集,但是为对象设置为fineil或置为null是一个很好的做法。利用技术特点优化数据处理许多技术都有助于数据处理,其中包含了上面提到的一些要点。下面是几个例子:•Oracle的preparedstat

7、ement•缓存框架,例如Hibernate的一级缓存和二级缓存•Hibernate框架的延迟加载机制数据序列化和反序列化在设计时需要避免性能代价过高的操作。如果没有这样的操作,述可以把数据转换减到最小。例如在Web应用程序可以尽量减少会话的输岀数据。并行处理数据如果需要处理的数据量很大,那么可以并行处理不相关的数据以减少总的处理时间。对象重用对于重量级对象不要从头创建,可以对现有对象进行克隆并且只修改必耍的属性尽可能重用现冇的信息。通过浅拷贝和深拷贝来控制重用的数量。丿京文链接:deepakgaikwad翻译:Impor

8、tNew.com-唐尤华译文链接:http://www.importnew.com/5674.html[转载请保留原文出处、译者和译文链接。]关于作者:唐尤华我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。