簡體   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