2011-09-05 56 views
4

我正在試用Windsor 3.0以查看是否可以升級。如何提高Windsor 3.0的啓動時間?

以下控制檯應用程序

var t = DateTime.Now; 
var container = new WindsorContainer(); 
Debug.WriteLine("Created in " + (DateTime.Now - t).TotalMilliseconds); 

注意到5421.875ms(一直高於5000毫秒)來創建WindsorContainer。

任何建議,以減少創建時間?

+0

我會查看你的TaskManager,以確定什麼在使用你的系統資源... 5.5秒的實例引發了一些資源問題的懷疑(例如內存泄漏)... – IAbstract

+0

這是一個簡單的控制檯應用程序。沒有內存泄漏。任務管理器中沒有爭用。這似乎是引入Windsor 3的DefaultKernel(或其某些子系統)的問題。這個問題在Windsor 2.5.2中不存在。 – Jeff

+0

哦,值得一試。你使用的是什麼版本的.Net? – IAbstract

回答

3

此行爲的來源是性能計數器的初始化。

從測試版2(目前在中繼線)開始,性能計數器將默認關閉,因此性能應該消失。

1

我該如何提高Windsor 3.0的性能?

在這種情況下:

  • 請確保您有Castle.Windsor和Castle.Core
  • 的PDBS獲取sources
  • 在WindsorContainer的實例化中放置一個斷點
  • 逐步調試,直到找到問題的根源。
  • 修復問題
  • 提交拉取請求。

或者使用類似dotTrace的分析器找到原因。

+0

Mauricio:我很樂意爲時間允許而貢獻Castle項目,我欣賞Windsor的開發人員所做的一切......但是,這不是我有時間修復這個bug的情況......並且建議我這樣做對於這個問題的目的並不是很有效。 – Jeff

+1

我想我會更好地提交一個錯誤報告,而不是在SO上發佈這個問題...... – Jeff

+0

@ JeffN825:你問了如何提高Windsor 3.0的性能,這就是我在這裏回答的問題。怎樣才能正確回答你的問題「沒有成效」? –