Fix a bug that made the nightly tester *really* slow. During changes for

portability, the --track-space option was inadvertently ignored. This patch
fixes that so that sys::Process::GetMallocUsage() is only invoked if the
--track-spaces option is given. Apparently the mallinfo() call that
GetMallocUsage() uses is *very* slow, especially when processing very large
modules like projects/llvm-test/MultiSource/Applications/kimwitu++.

llvm-svn: 19163
This commit is contained in:
Reid Spencer 2004-12-27 08:03:04 +00:00
parent a079b69981
commit ad7bdf7400
1 changed files with 9 additions and 3 deletions

View File

@ -93,6 +93,12 @@ Timer::~Timer() {
}
}
static inline long getMemUsage() {
if (TrackSpace)
return sys::Process::GetMallocUsage();
return 0;
}
struct TimeRecord {
double Elapsed, UserTime, SystemTime;
long MemUsed;
@ -108,9 +114,9 @@ static TimeRecord getTimeRecord(bool Start) {
long MemUsed = 0;
if (Start) {
sys::Process::GetTimeUsage(now,user,sys);
MemUsed = sys::Process::GetMallocUsage();
MemUsed = getMemUsage();
} else {
MemUsed = sys::Process::GetMallocUsage();
MemUsed = getMemUsage();
sys::Process::GetTimeUsage(now,user,sys);
}
@ -165,7 +171,7 @@ void Timer::sum(const Timer &T) {
/// currently active timers, which will be printed when the timer group prints
///
void Timer::addPeakMemoryMeasurement() {
long MemUsed = sys::Process::GetMallocUsage();
long MemUsed = getMemUsage();
for (std::vector<Timer*>::iterator I = ActiveTimers.begin(),
E = ActiveTimers.end(); I != E; ++I)