fix: CameraView memory leakage

This commit is contained in:
2026-01-28 15:03:46 +03:00
parent 8ff52f7d1e
commit 3283d73b3b
10 changed files with 363 additions and 266 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ public class CameraViewModel : ViewModelBase
{
_cameraService = cameraService;
_logger = logger;
_logger.LogInformation("Initialized");
_logger.LogInformation("{} initialized", nameof(CameraViewModel));
}
public async Task<(FrameBuffer, StreamConfiguration)?> CaptureImage(int bufferId)
+2 -2
View File
@@ -8,10 +8,10 @@ public partial class MainViewModel : ViewModelBase
[ObservableProperty] private CameraViewModel _cameraViewModel;
[ObservableProperty] private ResourcesViewModel _resourcesViewModel;
public MainViewModel(ILogger<MainViewModel> logger, ResourcesViewModel resourcesViewModel)
public MainViewModel(ILogger<MainViewModel> logger, CameraViewModel cameraViewModel, ResourcesViewModel resourcesViewModel)
{
_logger = logger;
// CameraViewModel = cameraViewModel;
CameraViewModel = cameraViewModel;
ResourcesViewModel = resourcesViewModel;
_logger.LogInformation("{} initialized", nameof(MainViewModel));
}
+1 -1
View File
@@ -43,7 +43,6 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable
[ObservableProperty] private ObservableCollection<Axis> _memoryUsageSeriesXAxes;
[ObservableProperty] private ObservableCollection<ISeries> _memoryUsagePieSeries;
[ObservableProperty] private int _intervalMs = 500;
[ObservableProperty] private int _chartsHistorySize = 120;
private readonly System.Timers.Timer _updateTimer;
@@ -409,6 +408,7 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable
memoryUsageValues.Add(Math.Round(snapshot.MemoryUsage.UsedMB, 2));
while (memoryUsageValues.Count > ChartsHistorySize)
memoryUsageValues.RemoveAt(0);
// _logger.LogInformation("Memory leakage: {} MB/s", (memoryUsageValues.TakeLast(10).Average() - memoryUsageValues.TakeLast(20).Take(10).Average()) / 5.0);
}
if (MemoryUsageSeriesYAxes.Count() == 1)
MemoryUsageSeriesYAxes.First().MaxLimit = Math.Round(snapshot.MemoryUsage.TotalMB);