我正在将EMF用于RCP应用程序。该模型非常复杂,我有很大的xml文件,因此加载模型需要更多时间。将Eclipse CDO Model Repository和EMF一起使用来将模型存储在数据库中从而减少加载时间是否是一个很好的选择。
使用CDO模型库会提高性能吗?
那些已经使用过CDO的人会为您提供宝贵的反馈。
最佳答案
CDO可能会提高性能,但全部取决于应用程序中的用法和数据访问模式。
CDO支持延迟加载,这可能会增加响应速度,尤其是在请求使用小的数据块时。
如果尝试加载大块数据并且还意识到要在应用程序和数据源之间引入一个附加层,则In也会降低性能。因此,可能会增加延迟。
实际上,如果您已经有一个基于EMF内存模型的应用程序,那么,如果您只是简单地转向CDO而未对应用程序代码进行任何修改,则可能会导致性能下降,从而更多地利用CDO和数据正在延迟加载的事实。
选择使用CDO的论点应与可伸缩性,并发性和事务支持更多相关。根据您描述的问题,大型模型可能存在可伸缩性问题。
但是,如果不是这种情况,那么CDO将无济于事。默认生成的EMF代码经过高度优化,可访问内存中的数据,当您简单地引入CDO之类的附加层时,很难提高性能。
请记住,EMF还支持不使用CDO(使用默认的生成模式)而延迟加载资源。您需要定义较小的资源,并在资源(代理)之间具有交叉引用。