1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Add zone vector cache.

Zone children will be now collected in staging vectors. When the zone is
ended (and no children can be added anymore to it), a size-fitted vector
is allocated using slab allocation. The over-allocated vector is then
put into cache for use in future zones.

This is only active for vectors <= 8192 elements, or 64 KB (chosen
arbitrarily), to reduce time spent on copying memory.

Overall, this change should have the following effects:
- System memory allocation pressure reduction, due to re-usage of
  vectors, which eliminates the need for constant growth.
- Reduction of memory usage, because children vectors are now fitted to
  required size.
- Slight increase of zone processing time, due to memory copying?
This commit is contained in:
Bartosz Taudul
2019-03-26 22:06:00 +01:00
parent 11f4dcbf1e
commit a632d9e2a3
2 changed files with 28 additions and 1 deletions
+2
View File
@@ -178,6 +178,8 @@ private:
Vector<Vector<ZoneEvent*>> zoneChildren;
Vector<Vector<GpuEvent*>> gpuChildren;
Vector<Vector<ZoneEvent*>> zoneVectorCache;
CrashEvent crashEvent;
};