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

序列化跟性能(转)

2012-12-23 
序列化和性能(转)转自:http://www.360doc.com/content/06/1217/00/15643_296709.shtml?通常人们认识的序列

序列化和性能(转)

转自:http://www.360doc.com/content/06/1217/00/15643_296709.shtml

?

通常人们认识的序列化类实现java.io.Serializable 像这样:


?

?

?

为了获得正确的测试结果,我们制定以下规则 。首先,不能测试一小部分对象,应该取较大的均值。第二,减小不必要的负载。如果测试程序快速产生大量的对象,会产生大量的垃圾收集。

在上面的代码中,我们仅序列化了50000个对象。并且没有将序列化的内容写入磁盘或者网络,因为会产生我们不希望的负载。

还有一点值得注意的是,如果有多个String类型的成员变量,他们之应该是不同的值。如果他们的值相同,那么他们引用的是同一个对象。

下面是不同jdk版本间的测试结果:

JDK 1.4.2_12?

Serializable: 9766ms.?

Streamfield: 9656ms.?

Read/Write object: 7781ms.?

Externalizable: 5875ms.?

?

JDK 1.5.0_19?

Serializable: 9016ms.?

Streamfield: 8859ms.?

Read/Write object: 7141ms.?

Externalizable: 5610ms.?

JDK 1.6.0 (B103)?

Serializable: 7484ms.?

Streamfield: 7312ms.?

Read/Write object: 5610ms.?

Externalizable: 4828ms.?

有趣的是你可以发现使用Externalizable 接口提升了55%的性能。同时也可以看出jdk不同版本的垃圾收集器&Hotpot引擎性能也在提升!


?

?

热点排行