Eclipse CDO模型库的性能

时间:2015-01-07 06:32:20

标签: eclipse eclipse-emf emf cdo

将EMF用于RCP应用程序。该模型非常复杂,我有大的xml文件,因此加载模型需要更多时间。将Eclipse CDO Model Repository与EMF一起使用以将模型存储在数据库中从而减少加载时间是不错的选择。

随着CDO Model Repository的使用,性能是否会提高?  那些已经使用过CDO的人会提供宝贵的反馈意见。

2 个答案:

答案 0 :(得分:4)

CDO可能会提高性能,但所有这些都取决于您在应用程序中的使用情况和数据访问模式。

CDO支持延迟加载,这可能会提高响应速度,尤其是当请求使用小块数据时。

如果您尝试加载大块数据并且还意识到在应用程序和数据源之间引入了附加层,则可能还会降低性能,因此可能会增加延迟。

事实上,如果您已经有一个基于EMF内存模型的应用程序,如果您只是在没有对应用程序代码进行任何调整的情况下转移到CDO,您可能会遇到性能下降,以便更好地利用CDO以及数据被懒散加载的事实。

选择使用CDO的参数应该与可伸缩性,并发性和事务支持更相关。从您描述的问题来看,您可能会遇到大型模型的可扩展性问题。 但如果情况并非如此,那么CDO将无济于事。默认生成的EMF代码经过高度优化,可以访问内存中的数据,当您只是引入CDO这样的附加层时,很难提高性能。

请记住,EMF还支持延迟加载资源而不使用CDO(使用默认生成模式)。您需要定义较小的资源并在资源(代理)之间进行交叉引用。

答案 1 :(得分:2)

所有silmarx所说的都是真的,包括那些" EMF也支持延迟加载资源"。但是,没有CDO,卸载互连资源是非常有问题的。要了解原因,您可能需要阅读我的文章How Scalable are my Models?

使用CDO,您可以通过配置预取选项来优化更深层对象树的加载(silmarx称为"大块数据")。