2009-07-18 79 views
0

我們已經有一個相當大的應用程序運行在VxWorks 5.5.1上,這個應用程序現在已經開發和修改了大約10年。我們有一些簡單的本土工具可以顯示我們還沒有使用太多太多內存或者太多太多處理器,但是我們對於我們實際擁有多少空間並沒有很好的感覺。它開始難以估計未來的增強功能。分析VxWorks系統

有沒有人有任何建議如何配置這樣一個系統?讓Wind River工具運行起來我們從未有過很多運氣。

對於獎勵積分:另一個複雜因素是我們的系統在不同的時間有非常不同的行爲;在啓動過程中,它做了很多事情,然後除了短暫的活動爆發之外,它比較空閒。如果有一個使用某種編程方式必須記錄狀態信息的探查器,我認爲這也會非常有用。

FWIW,這是用gcc編譯,並完全在C.

回答

3

我已經做了大量的各種軟件的性能調整,包括嵌入式應用程序。我不會討論記憶分析 - 我認爲這是一個不同的問題。

我只能猜測「知名」的想法源於哪裏,以找到性能問題,你需要測量各個部分的性能。這是一種自上而下的方式,類似於政府試圖通過細分來控制預算浪費的方式。恕我直言,它不工作得很好。 您可以通過測量來確定您所做的是否有所作爲,但在告訴您需要解決什麼問題時效果並不理想。

什麼是在告訴你什麼來解決是一個自下而上的方法,在您檢查的是花在什麼微觀單位的有代表性的樣品,並找出的爲什麼每一個完整的解釋正在度過。這適用於一個簡單的統計原因。如果有一個原因可以節省一些百分比(例如40%)的樣本,那麼平均有40%的樣本會顯示它,並且它不需要大量的樣本。它確實需要你仔細檢查每一個樣品,而不僅僅是將它們聚合成更大的束。作爲一個歷史的例子,這就是哈里杜魯門在美國參與第二次世界大戰爆發時所做的事情。國防工業浪費很大。他剛上車,開車到工廠,採訪站在旁邊的人。然後他回到美國參議院,解釋了問題究竟是什麼,並解決了問題。

也許這是比你想要的更多的答案。具體而言,this is the method I usethis is a blow-by-blow example of it

添加:我猜想通過測量找到的想法是很自然的。大約'82我正在研究一個嵌入式系統,我需要做一些性能調優。硬件工程師提供了一個我可以讀取的板子上的定時器(從他的大量提供)。他認爲,他認爲發現性能問題需要時間。我感謝他並拒絕了,因爲那時我知道並且信任隨機停止技術(用電路內仿真器完成)。

0

我已經在使用基於taskSwitchHookAdd和相關的功能(刪除鉤等)在當地建造的監控實用程序,有運氣系統工作編寫的。

「簡單地」使用它來跟蹤給定任務運行的滴答數。我意識到這是用於分析的相當大規模的信息,但根據您的需求它可能會有用。

要查看每個任務正在使用多少CPU,請計算分配給每個任務的刻度的百分比。

要查看您擁有多少空間,請添加一個只執行「while(1){}」的最低優先級「空閒」任務,並查看它分配給它的CPU數量。粗略地說,這是你的空間。

1

如果有輔助時鐘可用,你可以使用間諜工具(通過在config.h文件中配置),這確實這些任務所使用的CPU給你一個非常粗略的估計。

關於它的好處是,它不需要被連接到Tornado環境下,您可以從內核外殼使用它。

否則,使用taskHookAdd的btpierre的建議已成功在過去使用。