首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过XStream对可外部化的类使用缺省的Java序列化

通过XStream对可外部化的类使用缺省的Java序列化
EN

Stack Overflow用户
提问于 2012-09-04 10:21:24
回答 1查看 540关注 0票数 4

我使用XStream作为序列化对象的应用程序的一部分。对于其中一个用例,我必须序列化一些实现Externalizable接口的对象。对于我的用例,我想使用本机Java序列化来序列化它们。

我在互联网上找到了一个链接,http://old.nabble.com/How-to-remove-Externalizable-Converter-td22747484.html,它帮助我解决了这个问题,并开始使用可外部化对象的反射转换器。

在测试应用程序时,我发现在高并发访问期间,应用程序在转换器代码上花费了大量时间(10秒)。我可以看到问题出在FieldDictionary的buildMap方法中。

我想知道是否有更好的方法来解决我最初的问题?当具有高并发环境时,反射转换器的性能预计会变差吗?

给出一些关于环境的附加上下文。它是一个web应用程序,序列化发生在请求处理过程中,应用程序可以有100个并发线程。

我真的很感谢在这方面的任何帮助/建议。

EN

回答 1

Stack Overflow用户

发布于 2013-04-19 19:12:54

从技术上讲,这不是一个答案..但我希望不管怎样,它都能有所帮助。

在创建用于生物分子研究建模的基于Java Swing的桌面应用程序时,出于性能原因,我们将非常复杂且互连的对象图序列化到磁盘。

即使在解决了外部化和序列化相关的问题之后,我们也不得不放弃整个方法,重新开始,因为Java序列化对对象结构/名称等非常敏感。这意味着,当用户试图加载旧的序列化模型时,对模型的无害重构会导致生产中的重大崩溃。

最终,我们创建了一个数据存储友好的对象结构(没有对图中其他节点的强相互引用),并对该结构进行了序列化。这比序列化和反序列化原始图形简单得多,不易出错,速度也快得多。这也意味着我们可以随意重构/修改我们的域图对象,只要适配器(将域对象转换为DataStore对象的组件)保持正确更新即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12256027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档