summaryrefslogtreecommitdiff
path: root/lib/Support/Timer.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-12-20 21:44:27 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-12-20 21:44:27 +0000
commit7d05563324e538a377ba12ca62b2b5b0fbbba547 (patch)
tree8683f6ffbb252b8a43f36f941915cf2aab1338f8 /lib/Support/Timer.cpp
parent8b6628997fd07f448afd414be0119ccb595f64ee (diff)
downloadllvm-7d05563324e538a377ba12ca62b2b5b0fbbba547.tar.gz
llvm-7d05563324e538a377ba12ca62b2b5b0fbbba547.tar.bz2
llvm-7d05563324e538a377ba12ca62b2b5b0fbbba547.tar.xz
Fix a bug where system time always equals user time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19075 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/Timer.cpp')
-rw-r--r--lib/Support/Timer.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/Support/Timer.cpp b/lib/Support/Timer.cpp
index 1b2f91d03b..47d696804a 100644
--- a/lib/Support/Timer.cpp
+++ b/lib/Support/Timer.cpp
@@ -105,12 +105,19 @@ static TimeRecord getTimeRecord(bool Start) {
sys::TimeValue user(0,0);
sys::TimeValue sys(0,0);
- sys::Process::GetTimeUsage(now,user,sys);
+ long MemUsed = 0;
+ if (Start) {
+ sys::Process::GetTimeUsage(now,user,sys);
+ MemUsed = sys::Process::GetMallocUsage();
+ } else {
+ MemUsed = sys::Process::GetMallocUsage();
+ sys::Process::GetTimeUsage(now,user,sys);
+ }
- Result.Elapsed = now.seconds() + now.microseconds() / 1000000.0;
- Result.UserTime = user.seconds() + user.microseconds() / 1000000.0;
- Result.UserTime = sys.seconds() + sys.microseconds() / 1000000.0;
- Result.MemUsed = sys::Process::GetMallocUsage();
+ Result.Elapsed = now.seconds() + now.microseconds() / 1000000.0;
+ Result.UserTime = user.seconds() + user.microseconds() / 1000000.0;
+ Result.SystemTime = sys.seconds() + sys.microseconds() / 1000000.0;
+ Result.MemUsed = MemUsed;
return Result;
}