Skip to content

Plugin Monitoring

abbaye edited this page Mar 7, 2026 · 1 revision

Plugin Monitoring Panel

Real-time CPU% and memory charts for every loaded plugin — no external tooling required.


Opening

Tools → Plugin Monitoring or dock alongside Plugin Manager.


Architecture

flowchart TD
    VM["PluginMonitoringViewModel\nobserves PluginEntry collection\npolls at 1 s interval"]
    Counter["PerformanceCounter\nProcess % Processor Time"]
    GC["GC.GetTotalMemory()\nmanaged heap snapshot"]
    History["Rolling history per plugin\nCanvas + Polyline\nno third-party lib"]
    Panel["PluginMonitoringPanel.xaml\nDataTrigger-driven status dots\ntheme PM_* brushes"]
    PMgr["PluginManagerViewModel\nSelectionChanged → scroll to plugin row"]

    VM --> Counter
    VM --> GC
    VM --> History
    History --> Panel
    PMgr --> VM
Loading

What You See

┌──────────────────────────────────────────────────────────┐
│  [●] com.example.myplugin  v1.0.0          Loaded        │
│                                                           │
│  CPU %   ████▂▄▆▄▂▁▁▁▂▄▄▂▁▁          2.3 %              │
│  Mem MB  ▁▁▁▁▂▂▂▂▂▂▂▂▂▂▂▂▂▂         12.4 MB             │
└──────────────────────────────────────────────────────────┘
  • Status dot: Green = Loaded · Yellow = Deactivated · Red = Faulted
  • CPU chart: rolling polyline of CPU% over last N samples
  • Memory chart: rolling polyline of managed heap MB

Theme Brush Keys

All 8 built-in themes define these keys:

Key Description
PM_BackgroundBrush Panel background
PM_RowBorderBrush Row separator
PM_ChartCpuBrush CPU chart line
PM_ChartCpuHighBrush CPU spike highlight
PM_ChartMemBrush Memory chart line
PM_StatusLoadedBrush Dot — Loaded
PM_StatusFaultedBrush Dot — Faulted
PM_StatusDisabledBrush Dot — Disabled
PM_LabelForegroundBrush Plugin name
PM_ValueForegroundBrush Numeric values

Settings

Setting Default Description
MonitoringEnabled true Stop/start polling
MonitoringIntervalMs 1000 Poll interval in ms
MaxHistoryPoints 120 Rolling chart buffer (2 min @ 1 s)

Configure in Tools → Options → Plugins → Monitoring.


Known Limitations

  • CPU% is approximate — measured via WrapAsync() elapsed time, not per-thread CPU time
  • Memory is total managed heap — not isolated per-plugin unless using PluginSandbox
  • No alert thresholds — display only (planned)

See Also

Navigation

Getting Started

IDE Documentation

HexEditor Control

Advanced

Development


v0.6.4.75 Highlights

  • whfmt.FileFormatCatalog v1.0.0 NuGet (cross-platform net8.0)
  • 690+ .whfmt definitions (schema v2.3)
  • Structure Editor — block DataGrid, drag-drop, validation, SmartComplete
  • WhfmtBrowser/Catalog panels — browse all embedded formats
  • AI Assistant (5 providers, 25 MCP tools)
  • Tab Groups, Document Structure, Lazy Plugin Loading
  • Window Menu + Win32 Fullscreen (F11)
  • Git Integration UI (changes, history, blame)
  • Shared Undo Engine (HexEditor ↔ CodeEditor)
  • Bracket pair colorization, sticky scroll, peek definition
  • Format detection hardening (thread-safe, crash guard)

Links

Clone this wiki locally