Go to the documentation of this file.
27 #include "../services/profiler/Profiler.h"
29 #include <IceUtil/Time.h>
35 #include <unordered_set>
79 seed ^= hasher(
v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
104 void addThread(
int processId,
int threadId);
134 void runThreadWatchList();
135 void cpuUsageFromProcFile();
136 void getMemoryUsage();
139 std::string processCpuDataFilename;
143 std::mutex processCpuUsageMutex;
146 std::mutex processMemoryUsageMutex;
149 std::mutex threadWatchListMutex;
150 std::unordered_set<ThreadUsage> threadWatchList;
static int GetThreadJiffies(int processId, int threadId)
double getThreadLoad(int processId, int threadId)
void addAllChildThreads(int processId, int threadId)
void removeThread(int processId, int threadId)
bool operator<(const ThreadUsage &rhs) const
ProcessWatcher(Profiler::ProfilerPtr profiler)
static std::map< int, int > GetThreadListJiffies(int processId, std::vector< int > threadIds)
void addThread(int processId, int threadId)
size_t operator()(const armarx::ThreadUsage &t) const
armarx::core::time::DateTime Time
armarx::CpuUsage getProcessCpuUsage()
The ProcessWatcher class is instantiated once in each armarx::Application an monitors thread,...
static void hash_combine(std::size_t &seed, const T &v)
double v(double t, double v0, double a0, double j)
std::shared_ptr< Profiler > ProfilerPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
bool operator==(const ThreadUsage &rhs) const