diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 4c988c8ae1..15feed388b 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -35,6 +35,7 @@
+
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/FpsCounter.cs b/src/Avalonia.Base/Rendering/Composition/Server/FpsCounter.cs
index a09de2c0ff..7585710540 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/FpsCounter.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/FpsCounter.cs
@@ -35,7 +35,7 @@ internal class FpsCounter
public void FpsTick() => _framesThisSecond++;
- public void RenderFps(IDrawingContextImpl context)
+ public void RenderFps(IDrawingContextImpl context, string aux)
{
var now = _stopwatch.Elapsed;
var elapsed = now - _lastFpsUpdate;
@@ -50,7 +50,7 @@ internal class FpsCounter
_lastFpsUpdate = now;
}
- var fpsLine = $"Frame #{_totalFrames:00000000} FPS: {_fps:000}";
+ var fpsLine = $"Frame #{_totalFrames:00000000} FPS: {_fps:000} " + aux;
double width = 0;
double height = 0;
foreach (var ch in fpsLine)
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
index 749665156d..5ec5df8416 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
@@ -134,10 +134,19 @@ namespace Avalonia.Rendering.Composition.Server
, null, _dirtyRect);
}
- if(DrawFps)
- _fpsCounter.RenderFps(targetContext);
+ if (DrawFps)
+ {
+ var nativeMem = ByteSizeHelper.ToString((ulong)(
+ (Compositor.BatchMemoryPool.CurrentUsage + Compositor.BatchMemoryPool.CurrentPool) *
+ Compositor.BatchMemoryPool.BufferSize), false);
+ var managedMem = ByteSizeHelper.ToString((ulong)(
+ (Compositor.BatchObjectPool.CurrentUsage + Compositor.BatchObjectPool.CurrentPool) *
+ Compositor.BatchObjectPool.ArraySize *
+ IntPtr.Size), false);
+ _fpsCounter.RenderFps(targetContext, $"M:{managedMem} / N:{nativeMem}");
+ }
+
_dirtyRect = Rect.Empty;
-
}
}
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositor.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositor.cs
index 73792fdf98..564f792ebe 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositor.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositor.cs
@@ -24,8 +24,8 @@ namespace Avalonia.Rendering.Composition.Server
private List _activeTargets = new();
private HashSet _activeAnimations = new();
private List _animationsToUpdate = new();
- private BatchStreamObjectPool