mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Performance
- Corrected performance measurement. The TDB2::gc requires data to be loaded first, but load time is measured separately. This resulted in repeat counting. Now the gc time subtracts any load time that is accumulated *during* the gc. This is now a fair accounting of the time.
This commit is contained in:
parent
d386081c4c
commit
259f39f2d2
3 changed files with 14 additions and 0 deletions
|
@ -1503,6 +1503,7 @@ void TDB2::revert ()
|
||||||
int TDB2::gc ()
|
int TDB2::gc ()
|
||||||
{
|
{
|
||||||
context.timer_gc.start ();
|
context.timer_gc.start ();
|
||||||
|
unsigned long load_start = context.timer_load.total ();
|
||||||
|
|
||||||
// Allowed as a temporary override.
|
// Allowed as a temporary override.
|
||||||
if (context.config.getBoolean ("gc"))
|
if (context.config.getBoolean ("gc"))
|
||||||
|
@ -1611,7 +1612,11 @@ int TDB2::gc ()
|
||||||
// TODO Remove dangling dependencies
|
// TODO Remove dangling dependencies
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stop and remove accumulated load time from the GC time, because they
|
||||||
|
// overlap.
|
||||||
context.timer_gc.stop ();
|
context.timer_gc.stop ();
|
||||||
|
context.timer_gc.subtract (context.timer_load.total () - load_start);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,4 +105,12 @@ unsigned long Timer::total () const
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void Timer::subtract (unsigned long value)
|
||||||
|
{
|
||||||
|
if (value > _total)
|
||||||
|
_total = 0;
|
||||||
|
else
|
||||||
|
_total -= value;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -44,6 +44,7 @@ public:
|
||||||
void start ();
|
void start ();
|
||||||
void stop ();
|
void stop ();
|
||||||
unsigned long total () const;
|
unsigned long total () const;
|
||||||
|
void subtract (unsigned long);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string _description;
|
std::string _description;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue