2010-05-17 23 views
3

有沒有人偶然發現一個問題,在調試時NHibernate在Visual Studio中速度非常慢,但在單獨運行時表現正常?記錄被禁用,時間的浪費似乎是在執行實際查詢的時候,NHProfiler顯示查詢是非常快速地執行的(在我假設的SQL方面),但每個包含10個查詢的會話大約需要4秒。我正在使用SQL Express Server。正如我所說的,即使我打開完整日誌記錄並在沒有Visual Studio的情況下運行我的應用程序,它的速度也會更快。NHibernate在調試過程中速度很慢

更新。經過幾個小時和幾小時的工作,我可以通過簡單地將項目類型從Windows應用程序切換到控制檯應用程序(儘管實際上它是一個Windows服務,但它以前一直使用Windows應用程序項目類型)來解決問題。使NHibernate停止在調試模式下可能有什麼區別?

+0

也許你正在檢查觸發延遲加載的事情? – 2010-05-18 00:15:19

+0

不,我沒有使用任何斷點,它只是在調試模式下運行。 – 2010-05-18 00:54:56

+0

你怎麼知道它的NHibernate運行緩慢? – 2010-05-18 03:00:40

回答

3

我遇到了與我的WinForms應用程序相同的問題。我嘗試了將其更改爲控制檯應用程序的建議,它工作正常!不幸的是,控制檯窗口是不可接受的。

然後我發現我認爲的潛在罪魁禍首。 ShowSql()(或show_sql = true)。關閉此應用程序的速度與從Visual Studio外部運行時一樣快。我認爲這是因爲從VS運行時,它將控制檯輸出重定向到輸出窗口,這一切都需要時間。在Visual Studio之外運行時,沒有控制檯輸出可以寫入,所以速度更快。

希望對你有用

+0

我總是把show_sql設置爲'true',這很有道理。 – 2011-08-04 11:51:39