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



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

当从web应用程序调用时,该组件在10秒内处理一个特定的案例,而从控制台应用程序调用大约需要100秒。它发生在生产环境中我们注意到测试环境中存在一些差异,但差异并没有那么大(10倍)。

有人能提出可能导致这些问题的原因,以及我们可以采取哪些措施来提高性能吗。

提前感谢,Rohit

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

相反,对于控制台应用程序,每次启动控制台应用程序时都会重建"上下文视图"。根据模型的复杂性,此视图构建的成本可能非常高。

上述"上下文视图"的构建可视为ORM的初始化。这种性能问题在EF4.x.中尤为突出

请阅读EF性能注意事项

最新更新