/* === MeshCore Analyzer — perf.js === */
'use strict';
(function () {
let interval = null;
async function render(app) {
app.innerHTML = '
${ps.inMemory.toLocaleString()}
Packets in RAM
${ps.estimatedMB}MB
Memory Used
${ps.maxMB}MB
Memory Limit
${ps.queries.toLocaleString()}
Queries Served
${ps.inserts.toLocaleString()}
Live Inserts
${ps.evicted.toLocaleString()}
Evicted
${ps.indexes.byHash.toLocaleString()}
Unique Hashes
${ps.indexes.byObserver}
Observers
${ps.indexes.byNode.toLocaleString()}
Indexed Nodes
`;
}
// SQLite stats
if (server.sqlite && !server.sqlite.error) {
const sq = server.sqlite;
const walColor = sq.walSizeMB > 50 ? 'var(--status-red)' : sq.walSizeMB > 10 ? 'var(--status-yellow)' : 'var(--status-green)';
const freelistColor = sq.freelistMB > 10 ? 'var(--status-yellow)' : 'var(--status-green)';
html += `
${sq.walSizeMB}MB
WAL Size
${sq.freelistMB}MB
Freelist
${(sq.rows.transmissions || 0).toLocaleString()}
Transmissions
${(sq.rows.observations || 0).toLocaleString()}
Observations
${sq.rows.nodes || 0}
Nodes
${sq.rows.observers || 0}
Observers
`;
if (sq.walPages) {
html += `
${sq.walPages.busy}
WAL Busy Pages
`;
}
html += `
`;
}
// Server endpoints table
const eps = Object.entries(server.endpoints);
if (eps.length) {
html += '