From: Chris Lattner Date: Mon, 18 Nov 2002 21:45:55 +0000 (+0000) Subject: Add facility to compute peak memory usage X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=44a92675e4faf6bd2580ff6ce47e3716eb10a9b3;p=oota-llvm.git Add facility to compute peak memory usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4752 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/Support/Timer.h b/include/Support/Timer.h index 4e444d81269..8538bb972ae 100644 --- a/include/Support/Timer.h +++ b/include/Support/Timer.h @@ -35,6 +35,8 @@ class Timer { double UserTime; // User time elapsed double SystemTime; // System time elapsed long MemUsed; // Memory allocated (in bytes) + long PeakMem; // Peak memory used + long PeakMemBase; // Temporary for peak calculation... std::string Name; // The name of this time variable bool Started; // Has this time variable ever been started? TimerGroup *TG; // The TimerGroup this Timer is in. @@ -47,6 +49,7 @@ public: double getProcessTime() const { return UserTime+SystemTime; } double getWallTime() const { return Elapsed; } long getMemUsed() const { return MemUsed; } + long getPeakMem() const { return PeakMem; } std::string getName() const { return Name; } const Timer &operator=(const Timer &T) { @@ -54,6 +57,8 @@ public: UserTime = T.UserTime; SystemTime = T.SystemTime; MemUsed = T.MemUsed; + PeakMem = T.PeakMem; + PeakMemBase = T.PeakMemBase; Name = T.Name; Started = T.Started; assert (TG == T.TG && "Can only assign timers in the same TimerGroup!"); @@ -77,6 +82,12 @@ public: /// void stopTimer(); + /// addPeakMemoryMeasurement - This method should be called whenever memory + /// usage needs to be checked. It adds a peak memory measurement to the + /// currently active timers, which will be printed when the timer group prints + /// + static void addPeakMemoryMeasurement(); + /// print - Print the current timer to standard error, and reset the "Started" /// flag. void print(const Timer &Total); diff --git a/include/llvm/Support/Timer.h b/include/llvm/Support/Timer.h index 4e444d81269..8538bb972ae 100644 --- a/include/llvm/Support/Timer.h +++ b/include/llvm/Support/Timer.h @@ -35,6 +35,8 @@ class Timer { double UserTime; // User time elapsed double SystemTime; // System time elapsed long MemUsed; // Memory allocated (in bytes) + long PeakMem; // Peak memory used + long PeakMemBase; // Temporary for peak calculation... std::string Name; // The name of this time variable bool Started; // Has this time variable ever been started? TimerGroup *TG; // The TimerGroup this Timer is in. @@ -47,6 +49,7 @@ public: double getProcessTime() const { return UserTime+SystemTime; } double getWallTime() const { return Elapsed; } long getMemUsed() const { return MemUsed; } + long getPeakMem() const { return PeakMem; } std::string getName() const { return Name; } const Timer &operator=(const Timer &T) { @@ -54,6 +57,8 @@ public: UserTime = T.UserTime; SystemTime = T.SystemTime; MemUsed = T.MemUsed; + PeakMem = T.PeakMem; + PeakMemBase = T.PeakMemBase; Name = T.Name; Started = T.Started; assert (TG == T.TG && "Can only assign timers in the same TimerGroup!"); @@ -77,6 +82,12 @@ public: /// void stopTimer(); + /// addPeakMemoryMeasurement - This method should be called whenever memory + /// usage needs to be checked. It adds a peak memory measurement to the + /// currently active timers, which will be printed when the timer group prints + /// + static void addPeakMemoryMeasurement(); + /// print - Print the current timer to standard error, and reset the "Started" /// flag. void print(const Timer &Total);