From 9858b647524a9dfc779c69ebaee74650befe40d5 Mon Sep 17 00:00:00 2001 From: Alessandro Pignotti Date: Tue, 15 Oct 2024 22:24:26 +0200 Subject: [PATCH] Add disk latency statistics --- src/lib/DiskTab.svelte | 4 ++++ src/lib/WebVM.svelte | 16 +++++++++++++++- src/lib/activities.js | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/lib/DiskTab.svelte b/src/lib/DiskTab.svelte index b7ce80f..f812cdc 100644 --- a/src/lib/DiskTab.svelte +++ b/src/lib/DiskTab.svelte @@ -1,4 +1,8 @@ +

Disk

+

Backend latency: {$diskLatency}ms

WebVM runs on top of a complete Linux distribution

Filesystems up to 2GB are supported and data is downloaded completely on-demand

The WebVM cloud backend uses WebSockets and a it's distributed via a global CDN to minimize download latency

diff --git a/src/lib/WebVM.svelte b/src/lib/WebVM.svelte index e968775..3e4a72c 100644 --- a/src/lib/WebVM.svelte +++ b/src/lib/WebVM.svelte @@ -6,13 +6,14 @@ import '@xterm/xterm/css/xterm.css' import '@fortawesome/fontawesome-free/css/all.min.css' import { networkInterface, startLogin } from '$lib/network.js' - import { cpuActivity, diskActivity, cpuPercentage } from '$lib/activities.js' + import { cpuActivity, diskActivity, cpuPercentage, diskLatency } from '$lib/activities.js' import { introMessage, errorMessage } from '$lib/messages.js' export let configObj = null; export let processCallback = null; export let cacheId = null; export let cpuActivityEvents = []; + export let diskLatencies = []; export let activityEventsInterval = 0; var term = null; @@ -97,6 +98,18 @@ { diskActivity.set(state != "ready"); } + function latencyCallback(latency) + { + diskLatencies.push(latency); + if(diskLatencies.length > 30) + diskLatencies.shift(); + // Average the latency over at most 30 blocks + var total = 0; + for(var i=0;i