控制台应用程序与Web应用程序的实体框架性能

时间:2013-12-04 08:37:57

标签: c# entity-framework

我们有一个业务组件,它从多个表中读取和插入数据。它使用实体框架。 业务组件由MVC Web应用程序和控制台应用程序使用。 我们观察到这两种情况在性能上存在巨大差异。从控制台应用程序来看它非常慢。

当从Web应用程序调用时,组件在10秒内处理特定情况,而从控制台应用程序调用大约100秒。它发生在生产环境中 我们注意到测试环境存在一些差异,但差异并不大(10倍)。

有人可以提出可能导致这些原因的原因以及我们可以采取的改善绩效的步骤。

提前致谢, 罗希特夏尔

1 个答案:

答案 0 :(得分:1)

imho的原因是,在Web应用程序中,“上下文视图”在Web应用程序启动时构建并加载一次。因此,DbContext的实例化非常快。

相反,对于控制台应用程序,每次启动控制台应用程序时都会重建“上下文视图”。根据模型的复杂程度,此视图构建可能会花费很多。

所述“上下文视图”的构建可以看作是ORM的初始化。对于EF 4.x,这个性能问题尤为突出。

请阅读EF Perfomance considerations