Jes*_*sse 13 asp.net performance intellitrace dbcontext entity-framework-5
有人可以解释一下
在调试模式下,如果我在没有调试的情况下启动项目,我的网页加载时间为116秒,而加载时为15秒.
我已经设置了跟踪语句,并确定在调试模式下,在我的DbContext.SaveChanges方法中花费了大约116秒.
运行项目而不调试在同一部分中花费7秒钟.
如果您想了解更多信息,请在评论中告诉我.
项目设置:
附加信息:(如果您需要更多,请在评论中告诉我)
更新:
正如@ruionwriting建议的那样,我描述了数据库,我发现,无论项目是在调试模式还是生产模式下运行,~2,000 sql命令都会花费相同的时间.(每个命令0毫秒).
但是,在调试模式下,20,000个命令之间的平均绝对时间差为5ms.
与生产模式相比,该组命令的平均时间差为0.3 ms.
这是大约10倍的时间性能差异,并将实体框架隔离为在调试模式下花费额外时间.
有没有办法配置调试版本,以便可以在没有调试标志的情况下引用EntityFramework?
如果我以某种方式通过一些编译器魔术来实现性能,那么在调试功能方面我会失去什么?目前我无法进入实体框架代码,所以我认为我不会错过任何东西.
谢谢!
Jes*_*sse 21
Whohoo!
好的,所以调试模式异常缓慢的原因是因为Visual Studio的Intellitrace正在记录Entity Framework生成的每个ADO.NET事件(所有这些都是20,000个).
所以工具 - >选项 - > IntelliTrace和取消选中"启用IntelliTrace"修复了这个问题.
或者也可以通过转到工具 - >选项 - > IntelliTrace - > IntelliTrace事件并取消选中ADO.NET来过滤掉ADO.NET事件
谢谢大家的建议.
这里有一节介绍Will Intellitrace会减慢我的应用程序速度
| 归档时间: |
|
| 查看次数: |
3137 次 |
| 最近记录: |