2010-02-13 26 views

回答

2

我以前和libstatgrab一起工作過。通過Cygwin爲主要的類Unix變體和Windows提供了一些非常有用的系統統計信息(據說 - 從未嘗試過)。不同的操作系統的工作如此不同 - 特別是在使用度量標準方面 - 獲得您想要的內容可能很具挑戰性。即使像「自由內存」這種簡單的聲音,以跨平臺的方式進行操作也可能非常棘手。也許如果你把事情縮小一點,也許我們可以找到一些東西。

+0

libstatgrab看起來很酷。我想知道它目前是否維護良好。 – 2010-02-15 21:11:21

2

不幸的不是。

C標準幾乎侷限於動態分配,字符串操作,數學和文本I/O。一旦你超越了這個範圍,你就需要操作系統APIs,它的定義是操作系統特定的,而不是跨平臺的。

1

根據您要收集的指標,您可能需要考慮查看PCP(Performance Co-Pilot)。這是一個開源的性能框架,最初由Silicon Graphics開發,它收集和整理了大量來源的大量可能的指標,並可讓您從任何地方監控它們。

基本上,PCP會涉及在您的系統中添加另一個「圖層」 - 例如,您可能會監視一個分佈式的混合OS機器集羣,每個機器都安裝有本地PCP;一組'代理'收集每臺機器上的性能數據,然後您的代碼可以使用libpcp根據需要收集這些指標。

如果不知道確切的使用場景很難說(如果您正在談論的是在最終用戶的機器上無縫運行的東西,PCP可能不適合,但如果您想監控您控制的機器並且很樂意運行PCP服務,這是一個很棒的解決方案)。

我們使用PCP非常高興地收集來自Windows和Linux系統的指標,以及內部指標從我們的應用程序,並記錄他們全部集中,對他們的報告,監測趨勢等