首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

晋升你的Java应用性能:改善数据处理

2013-08-04 
提升你的Java应用性能:改善数据处理高速缓冲经常使用但不经常变化的数据可以进行缓存,通常需要缓存的是静

提升你的Java应用性能:改善数据处理

高速缓冲

经常使用但不经常变化的数据可以进行缓存,通常需要缓存的是静态或者服务端数据。如今,对应用事务数据也有很高的要求,这些数据也需要加入缓存。作 为一个简单的规则,在设计应用程序时经常需要识别这类实体并缓存到合适的位置,通常这些实体不会频繁改变甚至根本不会变化。刷新对象时也可以采用这个规 则。

在源端处理数据

在数据源或存储位置本身进行处理是一个好习惯。将大量数据发送给客户端然后再进行处理需要传输成本,而且有时客户端的处理逻辑会改变数据格式。例如 在oracle中过滤数据比较简单,只要为查询添加一个WHERE子句即可。而在Java程序中过滤这么数据需要先获取记录再逐行挨个属性进行比较。因此 用Java可能不是最佳实现。

尽可能减少数据转换和避免不正确的数据类型

将数据从一种格式转换到其他格式需要转换成本。对单个值进行转换消耗的性能可能微不足道,但如果记录个数成千上万性能问题就十分明显。例如选择String数据类型的值,并把它转换为double或其他基本类型,反之亦然。

保持数据的正确采集

从性能的角度来看,这是一个非常重要的考虑因素。 Java已经提供了不同的集合以满足不同的需求,例如有几种原始的集合,比如ArrayList,你可以不断向ArrayList添加数据并且集合本身不 会对数据进行任何操作。再比如Vector提供了同步的操作。我需要在插入数据时保持同步吗?这是一个很好的问题。如果不需要同步那么就不要使用 Vector,使用ArrayList或根据要求选择他集合。

对数据处理算法进一步优化

有时候性能问题是数据处理算法或实现逻辑造成的。实现逻辑应该将性能作为要求达到的一个目标,像是内存占用等。通过以下几个方法可以使算法进一步优化:

优化开销很大的调用和数据库循环调用优化循环里的对象声明避免不必要的嵌套循环将对象存储到多个集合Finalize重型数据对象

我们不能保证会立即执行垃圾收集,但是为对象设置为final或置为null是一个很好的做法。

利用技术特点优化数据处理

许多技术都有助于数据处理,其中包含了上面提到的一些要点。下面是几个例子:

Oracle的prepared statement缓存框架,例如Hibernate的一级缓存和二级缓存Hibernate框架的延迟加载机制数据序列化和反序列化

在设计时需要避免性能代价过高的操作。如果没有这样的操作,还可以把数据转换减到最小。例如在Web应用程序可以尽量减少会话的输出数据。

并行处理数据

如果需要处理的数据量很大,那么可以并行处理不相关的数据以减少总的处理时间。

对象重用

对于重量级对象不要从头创建,可以对现有对象进行克隆并且只修改必要的属性尽可能重用现有的信息。通过浅拷贝和深拷贝来控制重用的数量。

热点排行