2012-09-03 87 views
0

我很好奇線程創建對運行.NET微型框架的netduino有什麼影響。人們普遍認爲線程有一個inherent overhead給他們,但我想知道是否有人知道在嵌入式環境中是否存在.net micro的優化,以及任何人都可以給我一些細節, (分配多少內存,生成需要多少個週期等)。.net微型框架中創建線程的開銷是多少?

+0

.NET Micro是開源的,你爲什麼不看一看?並衡量你想知道的。 –

回答

2

根據我的經驗,NETMF下每個線程的內存成本大約爲1K。至於分配線程所需的時間,如果您正在考慮這樣的問題,那麼可能需要閱讀嵌入式系統最佳實踐。我不是在嘲笑你,還有相當一段難得的傳說,可以爲你節省心痛和麻煩。例如,線程的事情。如果你想要可靠性,你必須保證最大的資源需求。如果你打算說「不超過5個線程」,那麼你最好在你的初始化過程中啓動所有五個線程,並分配他們想要的所有資源。如果你不能這樣做,那麼你無法保證你的系統在負載下的穩定性。這樣做的副作用是,啓動它們所需的時間與系統的響應無關,儘管它稍微影響啓動時間。

上下文切換存在開銷。我無法給你量化的數字,因爲我從來不需要對它進行基準測試。 NETMF正在金屬上實施;您可以從您可以從ATMEL下載的SoC文檔獲得一些洞察。或者,如果你在netduino論壇上提問,克里斯可以告訴你一個公平的機會。

如果這是一個家庭作業問題,然後採取漢斯的建議,並看看源代碼。如果您正在尋找構建應用程序並評估平臺適用性的應用程序,那麼在不同線程上執行時序敏感的事情時,我從來沒有遇到切換延遲,但我從不使用超過三個或四個線程,其中一個以循環方式服務多個邏輯進程(所有時序不敏感的東西)。

再次,關鍵的長期穩定性是避免什麼的動態分配。

顯式編碼循環法的優點是您可以控制邏輯進程的順序。

+0

謝謝,這不是作業,也不是我開發系統。我只是好奇而已。謝謝 – devshorts

+2

然後,作爲一個廣泛的觀察,我會補充一點,我發現Netduino非常適合任何不需要高速採樣和計算的任何事情,我爲其設計了自己的背板,以簡化繼電器和伺服電機的機箱安裝,功率調節和一個將COM1重新映射到COM2的套接字,這樣我就可以使用兩個希望在COM1上的屏蔽。我發現簡單性的交易非常有價值。 –