繁体   English   中英

在 NET Framework 4.8 项目中引用 NET Standard 2.0 库 - 性能问题?

[英]Referencing a NET Standard 2.0 library in a NET Framework 4.8 Project - Performance Issues?

我有一个 NET Framework 4.8 Winforms 应用程序,它引用了一个 NET Standard 2.0.3 库,该库使用 Entity Framework Core v 2.2.6 来访问数据。

在我的开发环境的 IDE 中,它就像一个冠军。 当我直接运行 EXE 或从我的用户测试环境运行它时,它非常慢。 所以我深入研究了一下,这是我的 Entity Framework Load() 语句。 我验证了 SQL 的性能,这不是导致加载 30 行表单延迟 15 秒的原因。 我认为它要么与加载模型(而不是数据)有关,要么尝试加载 IDE 中可用但需要在操作系统中找到的资源。

我使用 Net Framework 4.5.2 和数据集/表适配器的其他应用程序继续正常工作,我检查了数据库,这不是问题(SQL Server)。 测试环境在 Windows 10 上,我的工作站有 NET Core 3.0 和 NET Framework 4.8 的开发版本,但用户工作站没有。 它们都同样缓慢。

你能想到这个堆栈会窒息的任何原因吗? 欢迎任何想法/建议。

简单地使用 NetStandard 库不会对性能产生任何显着差异。 根据您提供的有限信息,在这种情况下最有可能出现的问题可能是不同的环境。 具体来说,测试数据库可能比您的开发数据库慢。

这可能更难识别,但部分原因是 EF 核心 2.2.x 加载数据的方式。 在 Ef core 3.x 中,奇怪的行为是固定的,但基本上你所做的过滤是在客户端而不是服务器端完成的。 例如,如果您有一个包含一百万行的表并且您选择了 10,EF 2.2.6 将从数据库返回一百万行并在客户端丢弃其中的大部分,而 EFcore 3 将从数据库返回 10 ,因为它将过滤传递给服务器。

但是,如果没有更多信息,我们无法真正做出正确的猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM