`
bergman
  • 浏览: 8477 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

几种持久化(序列化、XML、数据库)性能比较

阅读更多

三种方式分别是:
1、序列化后保存到硬盘;
2、用XMLEncoder和XMLDecoder处理为XML保存到硬盘;
3、存取自数据库(mysql)
测试方法:写一个较复杂的javaBean,设值后用前两种方式存、取各自10000次。
数据库则简化了一下(比较懒,因此实际性能可能还要差一点),只存取一个只有两个字段的表各10000次。

测试结果:
序列化:用时1秒;
xml用时5秒
数据库存取一个只有两个字段的表各10000次,用时31秒。

总结:
java持久化:序列化性能最好,XML耗时是序列化的3-8倍,数据库存取耗时则是序列化的30-50倍,数据库最耗资源!
但是XMLEncoder和XMLDecoder仅支持标准的javaBean,并且不支持bean属性中的默认值。
序列化性能最好,注意序列化类要加上serialVersionUID,否则每次编译后都会失效
分享到:
评论

相关推荐

    java持久化工具类:JavaBean与XML

    JavaBean和XML在持久化中的结合主要体现在以下几个方面: 1. **对象-XML映射(OXM)**:通过Object-XML Mapping框架(如JAXB、Apache XMLBeans、Castor等),可以自动将JavaBean对象转换为XML文档,反之亦然。这种...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    ### HIBERNATE - 符合Java习惯的关系数据库持久化:深入解析与实践 #### 一、概述 Hibernate是Java领域内最受欢迎的对象关系映射(ORM)框架之一,它简化了Java应用程序与关系型数据库之间的交互,使得开发人员...

    XML数据库技术

    XML数据库系统的结构通常包括以下几个组成部分: - **用户界面**:提供用户与数据库交互的界面。 - **查询处理器**:负责解析和执行用户的查询请求。 - **存储管理器**:管理数据的物理存储和检索。 - **缓冲区管理...

    序列化反序列化例题net

    以下是几种常见的.NET序列化方法及其特点: 1. **BinaryFormatter**: .NET默认的序列化器,效率高,但生成的数据不便于人类阅读,且不跨平台。 2. **XmlSerializer**: 生成符合XML标准的序列化结果,数据可读性强,...

    c#几种常用数据库封装

    本文将深入探讨C#中几种常用的数据库封装技术,包括SQLite和BerkeleyDB,以及与数据库交互时涉及的序列化和通信机制。同时,我们将重点关注如何利用数据库连接池来优化性能。 首先,C#中的SQLite是一种轻量级、开源...

    iOS中几种数据持久化方案.pdf

    在选择数据持久化方案时,需要考虑数据的类型、数量、复杂性以及性能需求。例如,对于少量配置信息,偏好设置可能是最佳选择;对于大量结构化数据,SQLite或CoreData更为合适;而对于简单对象,可以考虑使用Plist或...

    jdom从数据库和xml拿数据生成xml

    综上所述,本项目涉及的主要知识点有Java编程、JDOM XML处理、MySQL数据库连接和操作、配置文件的使用,以及数据的序列化和反序列化。通过这些技术,可以实现从数据库获取数据并以XML格式进行存储或传输。在实际应用...

    序列化与反序列化的使用

    在.NET框架中,有几个内置的序列化机制,包括二进制序列化、XML序列化和SOAP序列化。下面我们将逐一详细讨论这些方法: 1. **二进制序列化**: .NET框架提供了一个名为`BinaryFormatter`的类来实现二进制序列化。它...

    ios 数据持久化存储

    本文将深入探讨iOS中的几种主要数据持久化技术:Preference(偏好设置)、文件存储、归档、数据库(SQLite)以及Core Data的使用。 1. **Preference(偏好设置)** iOS中的偏好设置,通常被称为NSUserDefaults,是...

    .net中反射和序列化示例

    在.NET框架中,反射和序列化是两种非常重要的编程概念,它们在开发高效、灵活的应用程序时发挥着关键作用。让我们深入探讨这两种技术及其在实际中的应用。 首先,反射是.NET提供的一种强大功能,允许程序在运行时...

    xml的几种方式的操作集锦大全

    XQuery是另一种更复杂的查询语言,功能更为强大,可以返回结构化的结果集,适合大型XML数据库的查询。 四、XML验证 XML验证确保文档符合预定义的结构,即XML Schema或DTD(Document Type Definition)。XML Schema...

    C#序列化和反序列化

    1. **数据持久化**:序列化最常用于将对象的状态持久化到文件或数据库中,以便在将来需要时重新创建该对象。 2. **远程通信**:在分布式系统中,经常需要在不同的应用域(AppDomain)之间传输对象。序列化使得对象...

    序列化与反序列化简单例子

    总的来说,这个例子展示了如何使用.NET Framework中的几种不同序列化技术,包括BinaryFormatter、SoapFormatter和XmlSerializer,以及它们在实际应用场景中的差异。通过学习这个例子,开发者可以更好地理解和掌握...

    C#项目:电影院售票系统(序列化与发序列化实现)

    在提供的压缩包文件"MyCinema"中,可能包含了项目的源代码、数据库配置、示例数据等资源,通过这些资源,我们可以深入理解如何在实际项目中应用序列化和反序列化技术,实现一个完整的电影院售票系统。

    序列化样例序列化样例

    序列化的主要用途有以下几点: 1. **数据持久化**:将对象的状态保存到文件或数据库中,以便后续重新加载和恢复。 2. **网络传输**:在网络通信中,序列化可以让对象以字节流的形式在网络上传输,从而实现对象的...

    C#中的序列化和反序列化

    本篇文章将深入探讨C#中的序列化和反序列化,以及如何使用三种主要的序列化方法:BinaryFormatter、SoapFormatter和XML序列化。 **序列化与反序列化基本概念** 序列化是指将对象的状态转换为可存储或可传输的形式...

    Iphone 序列化与反序列化,队列的实例

    序列化是指将对象转换为可存储或可传输的格式,如JSON、XML或二进制,而反序列化则是将这些格式的数据恢复为原始的对象形式。在iPhone应用开发中,苹果提供了内置的序列化框架,如NSKeyedArchiver和...

    序列化代码

    在给定的“序列化代码”中,可能包含了几种不同的序列化器实现,这些序列化器可能有不同的特性和使用场景。 常见的序列化技术包括Java的`java.io.Serializable`接口,.NET框架的`System.Runtime.Serialization....

    走进序列化之基础篇(勇气篇)

    另外,`Externalizable`接口提供了一种更灵活的序列化方式,需要手动编写序列化和反序列化的逻辑。 除了标准的Java序列化,还有许多第三方库提供了更高效、更安全的序列化方案,如Google的Protocol Buffers、Apache...

    精通Hibernate:对象持久化技术第二版part3

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

Global site tag (gtag.js) - Google Analytics