2012-01-29 160 views
4

我想知道在OS X上配置應用程序代碼的最佳方式。我有一個納秒級的解決方案計時器,它似乎在一些基線測試後,我正在執行內核系統調用上下文切換約45微(macbook 2ghz core2二人模型)。Mac OS X上的高性能代碼

我注意到,如果我讓我的應用程序每隔一段時間循環一次,然後我可以獲得大約25,000-50,000微秒的調度上下文切換。我正在測試一些算法,我想限制這種影響。

我真正想要的是能夠設置任務的處理器親和力,並且將主線程優先級設置爲實時,這不是一件壞事,因爲有一天這款Macbook可能會被用作低延遲控制器的東西。關於如何在snow leopard/XCode上做到這一點的任何想法?

+0

如果您想要有保證的低延遲控制器設備,個人電腦不會削減它。像[微控制器](http://en.wikipedia.org/wiki/Microcontroller)(例如[可編程邏輯控制器](http://en.wikipedia.org/wiki/Programmable_logic_controller))就是通常用於這種情況,如果你寧願避免昂貴的上下文切換。 – 2012-01-29 03:57:02

+2

您可以從應用程序主線程中分離實時/高優先級程序開始。所有發生在主線程上的*當然不是高優先級。 (因爲你說的是​​「應用程序」,我假設你指的是一個帶有用戶界面的程序,而不是像一個實用程序或代理程序) – justin 2012-01-29 04:01:44

+0

如果你試圖分析代碼中非常快速的部分,可以考慮將它們放在一個循環中,重複操作1000次以上並測量。至少我是這麼做的。 – demorge 2012-01-29 08:33:09

回答

1

您可以在Xcode中使用Shark。還有DTrace。