首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化第一次更新时的GraphDiff性能(后续更新很快)

优化第一次更新时的GraphDiff性能(后续更新很快)
EN

Stack Overflow用户
提问于 2014-11-21 14:31:15
回答 1查看 362关注 0票数 1

我正在做一个非常复杂的项目。对象图包含一棵具有两个层次的树中的大约30个对象(有子对象)。

该实体在浏览器中进行管理,并作为Json发送到Web端点。端点将JSON序列化到复杂实体中,然后存储库使用GraphDiff保存实体。

在第一次保存时,UpdateGraph调用大约需要12秒,而对同一实体的后续调用则需要毫秒。

我假设图是每个实体( EF DbContext )缓存的。

有什么方法可以优化第一次呼叫吗?当我们使用GraphDiff时,我们只有几个场景,也许有一种方法来准备应用程序中使用的图形。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-18 06:44:11

我通过从GraphDiff中克隆GitHub源代码并对其进行修改来解决这个问题。

GraphDiff动态地检测实体的键,而且由于动态查询表达式是如何生成以检索已经保存的对象的,所以每次使用新实体(另一个主键)进行查询时,该表达式都由EF重新编译。因此,编译后的查询不只是在以前使用实体键时才被缓存。在我的例子(10s)中,这些查询编译花费了大量时间。

对源代码进行了修改,允许注入已经持久化的实体。这意味着不让GrahpDiff从DB检索实体,而是以最优的方式检索它,并注入到GraphDiff中。

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

https://stackoverflow.com/questions/27063661

复制
相关文章

相似问题

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