* Added swap usage and page faults per second data sources.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27598 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -18,15 +18,17 @@
|
|||||||
const DataSource* kSources[] = {
|
const DataSource* kSources[] = {
|
||||||
new UsedMemoryDataSource(),
|
new UsedMemoryDataSource(),
|
||||||
new CachedMemoryDataSource(),
|
new CachedMemoryDataSource(),
|
||||||
|
new SwapSpaceDataSource(),
|
||||||
|
new PageFaultsDataSource(),
|
||||||
|
new CPUUsageDataSource(),
|
||||||
|
new CPUCombinedUsageDataSource(),
|
||||||
|
new NetworkUsageDataSource(true),
|
||||||
|
new NetworkUsageDataSource(false),
|
||||||
new SemaphoresDataSource(),
|
new SemaphoresDataSource(),
|
||||||
new PortsDataSource(),
|
new PortsDataSource(),
|
||||||
new ThreadsDataSource(),
|
new ThreadsDataSource(),
|
||||||
new TeamsDataSource(),
|
new TeamsDataSource(),
|
||||||
new RunningAppsDataSource(),
|
new RunningAppsDataSource(),
|
||||||
new CPUUsageDataSource(),
|
|
||||||
new CPUCombinedUsageDataSource(),
|
|
||||||
new NetworkUsageDataSource(true),
|
|
||||||
new NetworkUsageDataSource(false),
|
|
||||||
new ClipboardSizeDataSource(false),
|
new ClipboardSizeDataSource(false),
|
||||||
new ClipboardSizeDataSource(true),
|
new ClipboardSizeDataSource(true),
|
||||||
new MediaNodesDataSource()
|
new MediaNodesDataSource()
|
||||||
@@ -375,6 +377,51 @@ CachedMemoryDataSource::Primary() const
|
|||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
SwapSpaceDataSource::SwapSpaceDataSource()
|
||||||
|
{
|
||||||
|
SystemInfo info;
|
||||||
|
|
||||||
|
fColor = (rgb_color){0, 120, 0};
|
||||||
|
fMaximum = info.MaxSwapSpace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SwapSpaceDataSource::~SwapSpaceDataSource()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DataSource*
|
||||||
|
SwapSpaceDataSource::Copy() const
|
||||||
|
{
|
||||||
|
return new SwapSpaceDataSource(*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int64
|
||||||
|
SwapSpaceDataSource::NextValue(SystemInfo& info)
|
||||||
|
{
|
||||||
|
return info.UsedSwapSpace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char*
|
||||||
|
SwapSpaceDataSource::Label() const
|
||||||
|
{
|
||||||
|
return "Swap Space";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
SwapSpaceDataSource::Primary() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
SemaphoresDataSource::SemaphoresDataSource()
|
SemaphoresDataSource::SemaphoresDataSource()
|
||||||
{
|
{
|
||||||
SystemInfo info;
|
SystemInfo info;
|
||||||
@@ -844,6 +891,97 @@ CPUCombinedUsageDataSource::Primary() const
|
|||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
PageFaultsDataSource::PageFaultsDataSource()
|
||||||
|
:
|
||||||
|
fPreviousFaults(0),
|
||||||
|
fPreviousTime(0)
|
||||||
|
{
|
||||||
|
SystemInfo info;
|
||||||
|
NextValue(info);
|
||||||
|
|
||||||
|
fMinimum = 0;
|
||||||
|
fMaximum = 1000000000LL;
|
||||||
|
|
||||||
|
fColor = (rgb_color){200, 0, 150, 0};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PageFaultsDataSource::PageFaultsDataSource(const PageFaultsDataSource& other)
|
||||||
|
: DataSource(other)
|
||||||
|
{
|
||||||
|
fPreviousFaults = other.fPreviousFaults;
|
||||||
|
fPreviousTime = other.fPreviousTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PageFaultsDataSource::~PageFaultsDataSource()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DataSource*
|
||||||
|
PageFaultsDataSource::Copy() const
|
||||||
|
{
|
||||||
|
return new PageFaultsDataSource(*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
PageFaultsDataSource::Print(BString& text, int64 value) const
|
||||||
|
{
|
||||||
|
char buffer[32];
|
||||||
|
snprintf(buffer, sizeof(buffer), "%.1f faults/s", value / 1024.0);
|
||||||
|
|
||||||
|
text = buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int64
|
||||||
|
PageFaultsDataSource::NextValue(SystemInfo& info)
|
||||||
|
{
|
||||||
|
uint64 faults = info.PageFaults();
|
||||||
|
|
||||||
|
int64 faultsPerSecond = uint64(1024 * double(faults - fPreviousFaults)
|
||||||
|
/ (info.Time() - fPreviousTime) * 1000000.0);
|
||||||
|
|
||||||
|
fPreviousFaults = faults;
|
||||||
|
fPreviousTime = info.Time();
|
||||||
|
|
||||||
|
return faultsPerSecond;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char*
|
||||||
|
PageFaultsDataSource::Label() const
|
||||||
|
{
|
||||||
|
return "Page Faults";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char*
|
||||||
|
PageFaultsDataSource::Name() const
|
||||||
|
{
|
||||||
|
return "Page Faults";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
PageFaultsDataSource::AdaptiveScale() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
PageFaultsDataSource::Primary() const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
NetworkUsageDataSource::NetworkUsageDataSource(bool in)
|
NetworkUsageDataSource::NetworkUsageDataSource(bool in)
|
||||||
:
|
:
|
||||||
fIn(in),
|
fIn(in),
|
||||||
|
|||||||
@@ -98,6 +98,19 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class SwapSpaceDataSource : public MemoryDataSource {
|
||||||
|
public:
|
||||||
|
SwapSpaceDataSource();
|
||||||
|
virtual ~SwapSpaceDataSource();
|
||||||
|
|
||||||
|
virtual DataSource* Copy() const;
|
||||||
|
|
||||||
|
virtual int64 NextValue(SystemInfo& info);
|
||||||
|
virtual const char* Label() const;
|
||||||
|
virtual bool Primary() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class SemaphoresDataSource : public DataSource {
|
class SemaphoresDataSource : public DataSource {
|
||||||
public:
|
public:
|
||||||
SemaphoresDataSource();
|
SemaphoresDataSource();
|
||||||
@@ -216,6 +229,29 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class PageFaultsDataSource : public DataSource {
|
||||||
|
public:
|
||||||
|
PageFaultsDataSource();
|
||||||
|
PageFaultsDataSource(
|
||||||
|
const PageFaultsDataSource& other);
|
||||||
|
virtual ~PageFaultsDataSource();
|
||||||
|
|
||||||
|
virtual DataSource* Copy() const;
|
||||||
|
|
||||||
|
virtual void Print(BString& text, int64 value) const;
|
||||||
|
virtual int64 NextValue(SystemInfo& info);
|
||||||
|
|
||||||
|
virtual const char* Name() const;
|
||||||
|
virtual const char* Label() const;
|
||||||
|
virtual bool AdaptiveScale() const;
|
||||||
|
virtual bool Primary() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint32 fPreviousFaults;
|
||||||
|
bigtime_t fPreviousTime;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class NetworkUsageDataSource : public DataSource {
|
class NetworkUsageDataSource : public DataSource {
|
||||||
public:
|
public:
|
||||||
NetworkUsageDataSource(bool in);
|
NetworkUsageDataSource(bool in);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ SubDir HAIKU_TOP src apps activitymonitor ;
|
|||||||
# XXX: Temporary only
|
# XXX: Temporary only
|
||||||
SetSubDirSupportedPlatformsBeOSCompatible ;
|
SetSubDirSupportedPlatformsBeOSCompatible ;
|
||||||
|
|
||||||
UsePrivateHeaders shared ;
|
UsePrivateHeaders shared system ;
|
||||||
|
|
||||||
Application ActivityMonitor :
|
Application ActivityMonitor :
|
||||||
ActivityMonitor.cpp
|
ActivityMonitor.cpp
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ SystemInfo::SystemInfo(SystemInfoHandler* handler)
|
|||||||
fMediaBuffers(0)
|
fMediaBuffers(0)
|
||||||
{
|
{
|
||||||
get_system_info(&fSystemInfo);
|
get_system_info(&fSystemInfo);
|
||||||
|
get_system_info_etc(B_MEMORY_INFO, &fMemoryInfo,
|
||||||
|
sizeof(system_memory_info));
|
||||||
|
|
||||||
if (handler != NULL) {
|
if (handler != NULL) {
|
||||||
fRunningApps = handler->RunningApps();
|
fRunningApps = handler->RunningApps();
|
||||||
@@ -69,6 +71,27 @@ SystemInfo::MaxMemory() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32
|
||||||
|
SystemInfo::PageFaults() const
|
||||||
|
{
|
||||||
|
return fMemoryInfo.page_faults;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint64
|
||||||
|
SystemInfo::UsedSwapSpace() const
|
||||||
|
{
|
||||||
|
return fMemoryInfo.max_swap_space - fMemoryInfo.free_swap_space;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint64
|
||||||
|
SystemInfo::MaxSwapSpace() const
|
||||||
|
{
|
||||||
|
return fMemoryInfo.max_swap_space;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
uint32
|
uint32
|
||||||
SystemInfo::UsedSemaphores() const
|
SystemInfo::UsedSemaphores() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,9 @@
|
|||||||
|
|
||||||
#include <OS.h>
|
#include <OS.h>
|
||||||
|
|
||||||
|
#include <system_info.h>
|
||||||
|
|
||||||
|
|
||||||
class SystemInfoHandler;
|
class SystemInfoHandler;
|
||||||
|
|
||||||
|
|
||||||
@@ -20,6 +23,11 @@ public:
|
|||||||
uint64 UsedMemory() const;
|
uint64 UsedMemory() const;
|
||||||
uint64 MaxMemory() const;
|
uint64 MaxMemory() const;
|
||||||
|
|
||||||
|
uint32 PageFaults() const;
|
||||||
|
|
||||||
|
uint64 MaxSwapSpace() const;
|
||||||
|
uint64 UsedSwapSpace() const;
|
||||||
|
|
||||||
uint32 UsedSemaphores() const;
|
uint32 UsedSemaphores() const;
|
||||||
uint32 MaxSemaphores() const;
|
uint32 MaxSemaphores() const;
|
||||||
|
|
||||||
@@ -53,6 +61,7 @@ private:
|
|||||||
void _RetrieveNetwork();
|
void _RetrieveNetwork();
|
||||||
|
|
||||||
system_info fSystemInfo;
|
system_info fSystemInfo;
|
||||||
|
system_memory_info fMemoryInfo;
|
||||||
bigtime_t fTime;
|
bigtime_t fTime;
|
||||||
bool fRetrievedNetwork;
|
bool fRetrievedNetwork;
|
||||||
uint64 fBytesReceived;
|
uint64 fBytesReceived;
|
||||||
|
|||||||
Reference in New Issue
Block a user