`
cjy218
  • 浏览: 2151 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

对象深度拷贝.(性能)

阅读更多

rack 对象结构
    List<shelf> shelfs;
    ......
 
shelf 对象结构
   List <port> ports;  大约5000个对象.
   ......

public static List copy(Object oldObject, int count) throws RuntimeException {
List<Object> list = new ArrayList<Object>();
converter = new XStream(new DomDriver());

String serial = converter.toXML(oldObject);
for (int i = 0; i < count; i++) {
     list.add(converter.fromXML(serial));
}
return list;
}

对机架对象做深拷贝..内存溢出..
求: 有没有比这个性能更好的方法..
分享到:
评论
1 楼 bottom 2008-05-31  
if your object implements serializable, then using deserialize / serialize will be much faster and consumes less memory than xml.

相关推荐

    java 深度拷贝 复制 深度复制.zip

    在Java编程中,深度拷贝和浅拷贝是两种重要的对象复制方式,它们涉及到对象的内存管理和内存结构的复制。本篇文章将详细讲解如何利用Java的反射机制实现深度拷贝,以及这种方式的优点和注意事项。 首先,理解深度...

    C#深度拷贝克隆源码

    这种方法可以实现深度拷贝,但可能不适合所有情况,因为它可能带来性能问题,且要求类实现`ISerializable`接口或添加序列化特性。 ```csharp using System.IO; using System.Runtime.Serialization.Formatters....

    浅谈C#中List&lt;T&gt;对象的深度拷贝问题

    深度拷贝是指创建一个新对象,不仅复制原始对象的属性,还复制了嵌套对象的引用,确保新旧对象之间的独立性。本文将探讨C#中List对象的深度拷贝问题。 首先,我们来看当List中的T是值类型,如int、double等时的情况...

    Go 语言对象深拷贝方式性能分析

    深度拷贝可以通过序列化和反序列化来实现,也可以基于reflect包的反射机制完成。我对于这两种方式实现深拷贝做了性能基准测试。 下面是对比反射(github.com/mohae/deepcopy)与序列化(gob)所用的基准测试脚本 ...

    12-深拷贝.md

    在深拷贝的实现中,还要注意优化递归深度,以及处理大数据量时的性能问题。对于大数据量的深拷贝,可能需要考虑使用迭代而非递归,并且可能需要引入额外的工具或库来帮助处理内存占用。 综上所述,深拷贝是前端面试...

    java反射机制创建对象实现:java 深度拷贝 -超完美

    深度拷贝是指创建一个与原对象完全独立的新对象,包括所有嵌套对象的副本。以下将详细解释如何通过反射和序列化来实现这一目标。 首先,我们需要确保待拷贝的对象是可序列化的,因为Java的序列化机制可以用来实现...

    C#基于表达式(Expression)实现对象深拷贝

    总的来说,通过C#的表达式树实现对象深拷贝提供了一种灵活且高效的方式,尤其适用于那些需要高性能和深度定制拷贝逻辑的场景。但是,也需要根据实际需求权衡其复杂性和适用性。在学习和使用过程中,可以结合提供的`...

    拷贝构造函数..........

    - **性能问题**:拷贝构造函数可能会导致额外的开销,特别是在处理大量数据或复杂对象时,因此需要权衡性能和安全性的需求。 - **资源管理**:拷贝构造函数涉及到资源的复制和管理,必须小心处理,避免资源泄露或不...

    怎么使用javascript深度拷贝一个数组

    2. 使用Lodash库的`_.cloneDeep`方法:Lodash是一个广泛使用的JavaScript实用工具库,提供了许多便捷的工具函数,其中`_.cloneDeep`能够实现数组和对象的深度拷贝,包括循环引用的情况,是处理复杂数据结构拷贝的...

    C++11深度剖析.PDF

    2. **右值引用(Rvalue References)**:这一特性引入了`&&`符号作为右值引用,使得可以更有效地处理临时对象,为实现移动语义(Move Semantics)奠定了基础,大大提升了对象拷贝的效率。 3. **lambda表达式**:C++...

    javaEE的对象拷贝工具dozer

    Java EE对象拷贝工具Dozer是一款强大的数据映射库,它简化了在Java对象之间进行深度复制的过程。在软件开发中,特别是在业务层处理数据时,我们经常需要将一个对象的属性值复制到另一个对象中,Dozer提供了一个优雅...

    深度探索C++对象模型.

    C++的对象生命周期管理涉及到构造与析构、拷贝构造与赋值操作符重载,这些知识点对于理解对象的正确创建和销毁至关重要,特别是深拷贝和浅拷贝的区别以及如何避免常见的内存问题。 最后,书中还会探讨C++的异常处理...

    深度探索C++对象模型(清晰版.新).rar

    《深度探索C++对象模型》是一本专注于C++底层机制的权威著作,旨在帮助开发者深入理解C++的对象模型,从而更好地运用和优化代码。这本书详细阐述了C++语言中的类、对象、继承、多态等核心概念在内存中的实际表现形式...

    深度探索C++对象模型 PDF

    理解这一部分对于优化内存使用和性能至关重要,比如了解如何通过指针或引用访问对象成员,以及如何正确地处理对象的拷贝和移动。 其次,C++的动态类型和虚函数表是实现多态的关键。书中的内容将涵盖虚函数的工作...

    深度探索c++对象模型(2012版本)

    总的来说,《深度探索C++对象模型》将带领读者深入C++的核心,理解对象模型的每一个细节,这对于提升C++编程技能,解决复杂问题和优化代码性能具有极大的价值。通过阅读本书,读者将能够更好地掌握C++这一强大工具,...

    JS深度拷贝Object Array实例分析

    然而,深度拷贝也存在一些限制,如不支持循环引用的拷贝,拷贝大型对象时可能会导致性能问题等。 为解决上述问题,开发者可以寻找一些现成的深度拷贝库,比如lodash的_.cloneDeep()方法,这些库已经封装好了深度...

    deeplyAssign将所有可枚举的属性和符号属性的值从一个或多个源对象深度复制到目标对象

    同时,为了提高性能,还可以考虑添加对浅拷贝的优化,比如当检测到源对象和目标对象是同一个引用时,直接返回目标对象,避免不必要的拷贝。 `deeplyAssign-master`这个压缩包可能包含了这个函数的完整实现,包括...

    JS 数组和对象的深拷贝操作示例

    尽管它可以用来拷贝数组,但它并不会进行深度拷贝,当数组元素是复杂类型(如对象)时,拷贝的仍然是原始对象的引用。 2. `Object.assign()` `Object.assign()`用于将源对象的属性复制到目标对象上。如果源对象有...

    C# 使用反射来实现对象的深度复制方法

    以下是一个使用反射实现对象深度复制的示例代码: ```csharp public static class DeepCopyHelper { public static object Copy(this object obj) { Object targetDeepCopyObj; Type targetType = obj.GetType...

    深度探讨 PHP 之性能.doc

    - **优化技术**:PHP 使用了引用计数 (`Reference Counting`) 和写时复制 (`Copy On Write`) 等技术来优化内存使用,避免不必要的内存拷贝,从而提高性能。 ##### 2.3 函数 PHP 中的函数实际上是在运行时转换为...

Global site tag (gtag.js) - Google Analytics