From c69e5c790b2b277d9b11265b8f0883e9f90fe3b9 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 22 Mar 2024 17:47:29 +0100 Subject: Changes --- MatrixUtils.Web/Shared/MainLayout.razor | 8 ++- MatrixUtils.Web/Shared/ResourceUsage.razor | 64 ++++++++++++++++++++++ MatrixUtils.Web/Shared/RoomListItem.razor | 2 +- .../TimelineComponents/BaseTimelineItem.razor | 4 +- .../TimelineUnknownStateItem.razor | 16 ++++++ 5 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 MatrixUtils.Web/Shared/ResourceUsage.razor create mode 100644 MatrixUtils.Web/Shared/TimelineComponents/TimelineUnknownStateItem.razor (limited to 'MatrixUtils.Web/Shared') diff --git a/MatrixUtils.Web/Shared/MainLayout.razor b/MatrixUtils.Web/Shared/MainLayout.razor index 41c3d69..c67f73c 100644 --- a/MatrixUtils.Web/Shared/MainLayout.razor +++ b/MatrixUtils.Web/Shared/MainLayout.razor @@ -1,4 +1,5 @@ -@inherits LayoutComponentBase +@using ArcaneLibs +@inherits LayoutComponentBase
diff --git a/MatrixUtils.Web/Shared/ResourceUsage.razor b/MatrixUtils.Web/Shared/ResourceUsage.razor new file mode 100644 index 0000000..2a6365f --- /dev/null +++ b/MatrixUtils.Web/Shared/ResourceUsage.razor @@ -0,0 +1,64 @@ +@using ArcaneLibs +@using System.Diagnostics +

ResourceUsage

+ +
+ Memory usage: @lastMemoryUsage +
+ +
+ +
+ Time jitter: @lastCpuJitter +
+ +
+
+ +@code { + private Dictionary MemoryUsage = new(); + private Dictionary CpuUsage = new(); + private string lastMemoryUsage = ""; + private string lastCpuJitter = ""; + + protected override async Task OnInitializedAsync() { + Task.Run(async () => { + try { + while (true) { + lastMemoryUsage = Util.BytesToString((long)(MemoryUsage[DateTime.Now] = GC.GetTotalMemory(false))); + if (MemoryUsage.Count > 60) + MemoryUsage.Remove(MemoryUsage.Keys.First()); + await Task.Delay(1000); + } + } + catch (Exception e) { + Console.WriteLine(e); + } + }); + + // calculate cpu usage estimate without Process or PerformanceCounter + Task.Run(async () => { + try { + var sw = new Stopwatch(); + while (true) { + sw.Restart(); + await Task.Delay(1000); + sw.Stop(); + // CpuUsage[DateTime.Now] = sw.ElapsedTicks - TimeSpan.TicksPerSecond; + var usage = sw.Elapsed - TimeSpan.FromSeconds(1); + CpuUsage[DateTime.Now] = usage.Ticks - TimeSpan.TicksPerSecond; + lastCpuJitter = usage.ToString(); + if (CpuUsage.Count > 60) + CpuUsage.Remove(MemoryUsage.Keys.First()); + StateHasChanged(); + } + } + catch (Exception e) { + Console.WriteLine(e); + } + }); + + await base.OnInitializedAsync(); + } + +} \ No newline at end of file diff --git a/MatrixUtils.Web/Shared/RoomListItem.razor b/MatrixUtils.Web/Shared/RoomListItem.razor index 623a03a..5a33b65 100644 --- a/MatrixUtils.Web/Shared/RoomListItem.razor +++ b/MatrixUtils.Web/Shared/RoomListItem.razor @@ -11,7 +11,7 @@
@if (OwnMemberState != null) { @* Class="@("avatar32" + (OwnMemberState?.AvatarUrl != GlobalProfile?.AvatarUrl ? " highlightChange" : "") + (ChildContent is not null ? " vcenter" : ""))" *@ - + @(OwnMemberState?.DisplayName ?? GlobalProfile?.DisplayName ?? "Loading...") diff --git a/MatrixUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor b/MatrixUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor index c7bfd51..08aeffe 100644 --- a/MatrixUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor +++ b/MatrixUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor @@ -14,9 +14,9 @@ [Parameter] public AuthenticatedHomeserverGeneric Homeserver { get; set; } - public List EventsBefore => Events.TakeWhile(e => e.EventId != Event.EventId).ToList(); + public IEnumerable EventsBefore => Events.TakeWhile(e => e.EventId != Event.EventId); - public List MatchingEventsBefore => EventsBefore.Where(x => x.Type == Event.Type && x.StateKey == Event.StateKey).ToList(); + public IEnumerable MatchingEventsBefore => EventsBefore.Where(x => x.Type == Event.Type && x.StateKey == Event.StateKey); public StateEventResponse? PreviousState => MatchingEventsBefore.LastOrDefault(); diff --git a/MatrixUtils.Web/Shared/TimelineComponents/TimelineUnknownStateItem.razor b/MatrixUtils.Web/Shared/TimelineComponents/TimelineUnknownStateItem.razor new file mode 100644 index 0000000..4f05b30 --- /dev/null +++ b/MatrixUtils.Web/Shared/TimelineComponents/TimelineUnknownStateItem.razor @@ -0,0 +1,16 @@ +@using ArcaneLibs.Extensions +@inherits BaseTimelineItem + +
+
+ + Unknown event type:
@Event.Type
+
+
@Event.ToJson(ignoreNull: true)
+
+
+ +@code { + + +} -- cgit 1.5.1