{
  "task": "M1-04",
  "generatedBy": "pnpm zone:bots (cargo run --release -p zoen-bots --bin bots)",
  "what": "1000 bots over WebSocket on loopback against the in-process zone server: linear connect ramp 20 s, then a 60 s hold (bandwidth per bot is measured over the hold), then a 1000 close each",
  "behaviours": {"walk": "waypoint wander steered by the own exact position in each snapshot; one input per snapshot (20/s), an ack per snapshot, a ping per second", "fight": "hunters cast every castEveryS once inside their zone and stand still castMs; the cast is a bot-side timer (counted, not sent): protocol v1 input has no action/skill bits", "chat": "not in protocol v1: a bot-side timer every chatEveryS (counted, not sent)", "mix": {"townSharePermille": 250, "townRadiusMm": 50000, "pauseMs": [0, 3000], "castMs": 800, "castEveryMs": [2000, 6000], "chatEveryMs": [15000, 45000], "source": "netcode.json loadTest (botMix proposed by M1-04)"}},
  "harness": {"bots": 1000, "workers": 4, "rampS": 20, "snapshotWorkers": 4, "fieldSpawnPermille": 500, "holdS": 60, "runS": 80.075, "threads": "bots run on 4 poll(2) worker threads, not one OS thread per bot: the in-process server already runs two threads per client plus the tick on this 8-core Mac, and a worker wakes about once per tick for all its sockets instead of 1,000 threads waking 40+ times a second"},
  "machine": {"os": "macos", "arch": "aarch64", "availableParallelism": 8, "loadAverageBefore": "13.95 27.49 26.56", "loadAverageAfter": "100.01 47.00 33.85", "loadAndRss": [{"tS": 0.0, "load": "13.95 27.49 26.56", "rssKiB": 2320}, {"tS": 10.0, "load": "12.56 26.75 26.31", "rssKiB": 156016}, {"tS": 20.0, "load": "11.66 26.09 26.08", "rssKiB": 304736}, {"tS": 30.0, "load": "66.12 37.69 30.22", "rssKiB": 304736}, {"tS": 40.0, "load": "56.10 36.48 29.88", "rssKiB": 304800}, {"tS": 50.0, "load": "47.70 35.32 29.54", "rssKiB": 304800}, {"tS": 60.0, "load": "40.75 34.24 29.23", "rssKiB": 304800}, {"tS": 70.0, "load": "34.95 33.21 28.92", "rssKiB": 304800}, {"tS": 80.0, "load": "100.01 47.00 33.85", "rssKiB": 304816}, {"tS": 80.1, "load": "100.01 47.00 33.85", "rssKiB": 273760}]},
  "thresholds": {"loopP99Ms": 15.000, "avgDownstreamBps": 12000, "hardCapBps": 32000, "source": "netcode.json tick.targetP99Ms, loadTest.avgDownstreamKBps, snapshot.hardCapKBps (KB = 1,000 B)"},
  "bots": {"requested": 1000, "joined": 1000, "connectErrors": 0, "disconnects": 0, "cleanCloses": 1000, "inField": 506, "spawnedInField": 500, "snapshots": 1400617, "fullSnapshots": 1000, "missedTicks": 0, "inputs": 1400617, "acks": 1400617, "pings": 70036, "pongs": 69990, "waypointsReached": 2190, "castsNotSent": 8470, "chatLinesNotSent": 1857},
  "downstreamBpsPerBotHold": {"mean": 3743.4, "p50": 783.9, "p95": 9896.2, "p99": 10215.7, "max": 10586.9, "samples": 1000},
  "upstreamBpsPerBotHold": {"mean": 531.2, "p50": 531.2, "p95": 531.2, "p99": 531.4, "max": 531.4, "samples": 1000},
  "rttMs": {"mean": 45.241, "p50": 45.028, "p95": 51.991, "p99": 55.342, "max": 88.574, "samples": 69990},
  "botSeries": [{"tS": 1.0, "joined": 48, "downBpsPerBot": 598}, {"tS": 2.0, "joined": 98, "downBpsPerBot": 1614}, {"tS": 3.0, "joined": 148, "downBpsPerBot": 2924}, {"tS": 4.0, "joined": 198, "downBpsPerBot": 3629}, {"tS": 5.0, "joined": 250, "downBpsPerBot": 4114}, {"tS": 6.0, "joined": 298, "downBpsPerBot": 4854}, {"tS": 7.0, "joined": 348, "downBpsPerBot": 5254}, {"tS": 8.0, "joined": 398, "downBpsPerBot": 5412}, {"tS": 9.0, "joined": 448, "downBpsPerBot": 5399}, {"tS": 10.0, "joined": 499, "downBpsPerBot": 5458}, {"tS": 11.0, "joined": 548, "downBpsPerBot": 5287}, {"tS": 12.0, "joined": 598, "downBpsPerBot": 5318}, {"tS": 13.0, "joined": 648, "downBpsPerBot": 5317}, {"tS": 14.0, "joined": 698, "downBpsPerBot": 5352}, {"tS": 15.0, "joined": 748, "downBpsPerBot": 5342}, {"tS": 16.0, "joined": 798, "downBpsPerBot": 5381}, {"tS": 17.0, "joined": 848, "downBpsPerBot": 5487}, {"tS": 18.0, "joined": 898, "downBpsPerBot": 5346}, {"tS": 19.0, "joined": 948, "downBpsPerBot": 5471}, {"tS": 20.0, "joined": 998, "downBpsPerBot": 5437}, {"tS": 21.0, "joined": 1000, "downBpsPerBot": 5427}, {"tS": 22.0, "joined": 1000, "downBpsPerBot": 5227}, {"tS": 23.0, "joined": 1000, "downBpsPerBot": 5015}, {"tS": 24.0, "joined": 1000, "downBpsPerBot": 4986}, {"tS": 25.0, "joined": 1000, "downBpsPerBot": 4790}, {"tS": 26.0, "joined": 1000, "downBpsPerBot": 4570}, {"tS": 27.0, "joined": 1000, "downBpsPerBot": 4412}, {"tS": 28.0, "joined": 1000, "downBpsPerBot": 4378}, {"tS": 29.0, "joined": 1000, "downBpsPerBot": 4274}, {"tS": 30.0, "joined": 1000, "downBpsPerBot": 4332}, {"tS": 31.0, "joined": 1000, "downBpsPerBot": 4226}, {"tS": 32.0, "joined": 1000, "downBpsPerBot": 4171}, {"tS": 33.0, "joined": 1000, "downBpsPerBot": 4117}, {"tS": 34.0, "joined": 1000, "downBpsPerBot": 4083}, {"tS": 35.0, "joined": 1000, "downBpsPerBot": 4005}, {"tS": 36.0, "joined": 1000, "downBpsPerBot": 3965}, {"tS": 37.0, "joined": 1000, "downBpsPerBot": 3957}, {"tS": 38.0, "joined": 1000, "downBpsPerBot": 3970}, {"tS": 39.0, "joined": 1000, "downBpsPerBot": 3862}, {"tS": 40.0, "joined": 1000, "downBpsPerBot": 3792}, {"tS": 41.0, "joined": 1000, "downBpsPerBot": 3827}, {"tS": 42.0, "joined": 1000, "downBpsPerBot": 3775}, {"tS": 43.0, "joined": 1000, "downBpsPerBot": 3704}, {"tS": 44.0, "joined": 1000, "downBpsPerBot": 3665}, {"tS": 45.0, "joined": 1000, "downBpsPerBot": 3710}, {"tS": 46.0, "joined": 1000, "downBpsPerBot": 3658}, {"tS": 47.0, "joined": 1000, "downBpsPerBot": 3667}, {"tS": 48.0, "joined": 1000, "downBpsPerBot": 3681}, {"tS": 49.0, "joined": 1000, "downBpsPerBot": 3589}, {"tS": 50.0, "joined": 1000, "downBpsPerBot": 3584}, {"tS": 51.0, "joined": 1000, "downBpsPerBot": 3459}, {"tS": 52.0, "joined": 1000, "downBpsPerBot": 3440}, {"tS": 53.0, "joined": 1000, "downBpsPerBot": 3446}, {"tS": 54.0, "joined": 1000, "downBpsPerBot": 3480}, {"tS": 55.0, "joined": 1000, "downBpsPerBot": 3501}, {"tS": 56.0, "joined": 1000, "downBpsPerBot": 3491}, {"tS": 57.0, "joined": 1000, "downBpsPerBot": 3437}, {"tS": 58.0, "joined": 1000, "downBpsPerBot": 3421}, {"tS": 59.0, "joined": 1000, "downBpsPerBot": 3412}, {"tS": 60.0, "joined": 1000, "downBpsPerBot": 3427}, {"tS": 61.0, "joined": 1000, "downBpsPerBot": 3341}, {"tS": 62.0, "joined": 1000, "downBpsPerBot": 3366}, {"tS": 63.0, "joined": 1000, "downBpsPerBot": 3346}, {"tS": 64.0, "joined": 1000, "downBpsPerBot": 3289}, {"tS": 65.0, "joined": 1000, "downBpsPerBot": 3300}, {"tS": 66.0, "joined": 1000, "downBpsPerBot": 3329}, {"tS": 67.0, "joined": 1000, "downBpsPerBot": 3354}, {"tS": 68.0, "joined": 1000, "downBpsPerBot": 3412}, {"tS": 69.0, "joined": 1000, "downBpsPerBot": 3299}, {"tS": 70.0, "joined": 1000, "downBpsPerBot": 3295}, {"tS": 71.0, "joined": 1000, "downBpsPerBot": 3255}, {"tS": 72.0, "joined": 1000, "downBpsPerBot": 3155}, {"tS": 73.0, "joined": 1000, "downBpsPerBot": 3181}, {"tS": 74.0, "joined": 1000, "downBpsPerBot": 3247}, {"tS": 75.0, "joined": 1000, "downBpsPerBot": 3236}, {"tS": 76.0, "joined": 1000, "downBpsPerBot": 3255}, {"tS": 77.0, "joined": 1000, "downBpsPerBot": 3275}, {"tS": 78.0, "joined": 1000, "downBpsPerBot": 3233}, {"tS": 79.0, "joined": 1000, "downBpsPerBot": 3251}, {"tS": 80.0, "joined": 1000, "downBpsPerBot": 3187}],
  "loop": {"what": "server loop iteration (ingest + tick + all snapshots + hand-off), ramp and hold", "ticks": 1603, "p50Ms": 6.380, "p99Ms": 12.100, "maxMs": 82.440, "meanMs": 6.194, "overTarget": 8, "overBudget": 1, "catchUpTicks": 0, "droppedTicks": 0, "stalls": 0, "maxLatenessMs": 37.100},
  "tickThreadCpu": {"perLoop": {"meanMs": 2.944, "p50Ms": 3.080, "p99Ms": 5.130, "maxMs": 12.163, "n": 1603}, "wholeRunMsPerTick": 2.961, "note": "CPU time of the tick thread per loop iteration (CLOCK_THREAD_CPUTIME_ID); CPU well under wall time means the thread waited for a core", "workerCpuPerLoop": {"meanMs": 6.452, "p50Ms": 7.040, "p99Ms": 9.920, "maxMs": 11.056, "n": 1603}, "workerNote": "snapshot worker threads (shards 1..n) summed per loop; the tick thread runs shard 0"},
  "phases": {"ingest": {"meanMs": 0.253, "p50Ms": 0.250, "p99Ms": 0.510, "maxMs": 17.975, "n": 1603}, "tick": {"meanMs": 0.905, "p50Ms": 0.820, "p99Ms": 2.190, "maxMs": 11.649, "n": 1603}, "snapshotBuild": {"meanMs": 2.587, "p50Ms": 2.510, "p99Ms": 6.080, "maxMs": 14.606, "n": 1603}, "handOff": {"meanMs": 1.303, "p50Ms": 0.960, "p99Ms": 4.520, "maxMs": 65.838, "n": 1603}, "poolWait": {"meanMs": 1.142, "p50Ms": 0.840, "p99Ms": 4.550, "maxMs": 9.789, "n": 1603}, "what": "wall time per loop phase: ingest = drain the inbound queue; tick = sim + spatial hash + interest; snapshotBuild = delta snapshots, handOff = take a free buffer, frame, queue to the writer thread (both of the slowest shard when snapshotWorkers > 1); poolWait = the rest of the parallel section (wake, barrier, merge)"},
  "slowTicks": {"count": 8, "phaseMeanMs": {"ingest": 2.748, "tick": 2.729, "snapshotBuild": 7.602, "handOff": 16.469, "poolWait": 1.006}, "cpuMeanMs": 4.696, "what": "loop iterations over the p99 target and where their wall time went"},
  "frames": {"sent": 1471673, "skipped": 0, "snapshotErrors": 0, "maxSnapshotPayloadBytes": 1448},
  "inputs": {"applied": 1400617, "stale": 0, "dropped": 0},
  "server": {"accepted": 1000, "joins": 1000, "leaves": 1000, "peakClients": 1000, "full": 0, "idleTimeouts": 0, "badMessages": 0, "threadsLeft": 0, "downMeanBps": 4002.3, "downMaxBps": 10827.8},
  "serverSeries": {"windowS": 1, "phaseOrder": ["ingest", "tick", "snapshotBuild", "handOff", "poolWait"], "windows": [
    {"tS": 1.0, "clients": 50, "ticks": 21, "loopP50Ms": 0.150, "loopP99Ms": 0.346, "loopMaxMs": 0.346, "cpuMeanMs": 0.103, "workerCpuMeanMs": 0.103, "phaseMeanMs": [0.033, 0.025, 0.013, 0.033, 0.051], "framesSent": 605, "framesSkipped": 0, "droppedTicks": 0, "inputs": 480, "sentBpsPerClient": 646},
    {"tS": 2.0, "clients": 100, "ticks": 20, "loopP50Ms": 0.380, "loopP99Ms": 1.617, "loopMaxMs": 1.617, "cpuMeanMs": 0.212, "workerCpuMeanMs": 0.359, "phaseMeanMs": [0.051, 0.053, 0.069, 0.086, 0.172], "framesSent": 1656, "framesSkipped": 0, "droppedTicks": 0, "inputs": 1483, "sentBpsPerClient": 1670},
    {"tS": 3.0, "clients": 150, "ticks": 20, "loopP50Ms": 0.600, "loopP99Ms": 1.015, "loopMaxMs": 1.015, "cpuMeanMs": 0.322, "workerCpuMeanMs": 0.674, "phaseMeanMs": [0.057, 0.090, 0.163, 0.116, 0.207], "framesSent": 2705, "framesSkipped": 0, "droppedTicks": 0, "inputs": 2480, "sentBpsPerClient": 3007},
    {"tS": 4.0, "clients": 200, "ticks": 20, "loopP50Ms": 0.820, "loopP99Ms": 1.059, "loopMaxMs": 1.059, "cpuMeanMs": 0.401, "workerCpuMeanMs": 0.998, "phaseMeanMs": [0.069, 0.111, 0.248, 0.154, 0.259], "framesSent": 3753, "framesSkipped": 0, "droppedTicks": 0, "inputs": 3480, "sentBpsPerClient": 3655},
    {"tS": 5.0, "clients": 250, "ticks": 20, "loopP50Ms": 1.140, "loopP99Ms": 1.575, "loopMaxMs": 1.575, "cpuMeanMs": 0.555, "workerCpuMeanMs": 1.384, "phaseMeanMs": [0.084, 0.155, 0.376, 0.218, 0.374], "framesSent": 4806, "framesSkipped": 0, "droppedTicks": 0, "inputs": 4480, "sentBpsPerClient": 4141},
    {"tS": 6.0, "clients": 300, "ticks": 20, "loopP50Ms": 1.500, "loopP99Ms": 6.598, "loopMaxMs": 6.598, "cpuMeanMs": 0.747, "workerCpuMeanMs": 1.833, "phaseMeanMs": [0.092, 0.222, 0.751, 0.241, 0.641], "framesSent": 5854, "framesSkipped": 0, "droppedTicks": 0, "inputs": 5481, "sentBpsPerClient": 4912},
    {"tS": 7.0, "clients": 350, "ticks": 20, "loopP50Ms": 3.040, "loopP99Ms": 14.860, "loopMaxMs": 14.860, "cpuMeanMs": 1.138, "workerCpuMeanMs": 2.486, "phaseMeanMs": [0.273, 0.348, 1.157, 0.370, 1.533], "framesSent": 6906, "framesSkipped": 0, "droppedTicks": 0, "inputs": 6480, "sentBpsPerClient": 5296},
    {"tS": 8.0, "clients": 400, "ticks": 20, "loopP50Ms": 2.590, "loopP99Ms": 5.438, "loopMaxMs": 5.438, "cpuMeanMs": 1.275, "workerCpuMeanMs": 3.033, "phaseMeanMs": [0.124, 0.396, 1.257, 0.366, 0.891], "framesSent": 7953, "framesSkipped": 0, "droppedTicks": 0, "inputs": 7482, "sentBpsPerClient": 5410},
    {"tS": 9.0, "clients": 450, "ticks": 20, "loopP50Ms": 3.920, "loopP99Ms": 19.749, "loopMaxMs": 19.749, "cpuMeanMs": 1.612, "workerCpuMeanMs": 3.384, "phaseMeanMs": [0.138, 0.530, 1.786, 0.876, 1.248], "framesSent": 9008, "framesSkipped": 0, "droppedTicks": 0, "inputs": 8481, "sentBpsPerClient": 5421},
    {"tS": 10.0, "clients": 500, "ticks": 20, "loopP50Ms": 3.800, "loopP99Ms": 6.454, "loopMaxMs": 6.454, "cpuMeanMs": 1.714, "workerCpuMeanMs": 3.855, "phaseMeanMs": [0.135, 0.524, 1.397, 0.580, 1.352], "framesSent": 10056, "framesSkipped": 0, "droppedTicks": 0, "inputs": 9481, "sentBpsPerClient": 5438},
    {"tS": 11.0, "clients": 550, "ticks": 20, "loopP50Ms": 4.220, "loopP99Ms": 5.941, "loopMaxMs": 5.941, "cpuMeanMs": 1.917, "workerCpuMeanMs": 3.865, "phaseMeanMs": [0.149, 0.592, 1.595, 0.536, 1.338], "framesSent": 11106, "framesSkipped": 0, "droppedTicks": 0, "inputs": 10481, "sentBpsPerClient": 5311},
    {"tS": 12.0, "clients": 601, "ticks": 20, "loopP50Ms": 4.240, "loopP99Ms": 6.209, "loopMaxMs": 6.209, "cpuMeanMs": 2.224, "workerCpuMeanMs": 4.421, "phaseMeanMs": [0.173, 0.748, 1.864, 0.665, 1.035], "framesSent": 12158, "framesSkipped": 0, "droppedTicks": 0, "inputs": 11481, "sentBpsPerClient": 5315},
    {"tS": 13.0, "clients": 650, "ticks": 20, "loopP50Ms": 4.170, "loopP99Ms": 6.374, "loopMaxMs": 6.374, "cpuMeanMs": 2.367, "workerCpuMeanMs": 4.789, "phaseMeanMs": [0.185, 0.767, 1.812, 0.725, 0.751], "framesSent": 13199, "framesSkipped": 0, "droppedTicks": 0, "inputs": 12481, "sentBpsPerClient": 5315},
    {"tS": 14.0, "clients": 700, "ticks": 20, "loopP50Ms": 5.290, "loopP99Ms": 9.445, "loopMaxMs": 9.445, "cpuMeanMs": 2.816, "workerCpuMeanMs": 5.639, "phaseMeanMs": [0.242, 0.892, 2.603, 1.090, 0.534], "framesSent": 14260, "framesSkipped": 0, "droppedTicks": 0, "inputs": 13480, "sentBpsPerClient": 5358},
    {"tS": 15.0, "clients": 750, "ticks": 20, "loopP50Ms": 5.960, "loopP99Ms": 8.556, "loopMaxMs": 8.556, "cpuMeanMs": 3.173, "workerCpuMeanMs": 5.696, "phaseMeanMs": [0.227, 1.258, 2.452, 0.680, 1.418], "framesSent": 15305, "framesSkipped": 0, "droppedTicks": 0, "inputs": 14481, "sentBpsPerClient": 5345},
    {"tS": 16.0, "clients": 800, "ticks": 20, "loopP50Ms": 5.780, "loopP99Ms": 7.549, "loopMaxMs": 7.549, "cpuMeanMs": 3.178, "workerCpuMeanMs": 6.083, "phaseMeanMs": [0.251, 1.219, 2.445, 0.873, 1.089], "framesSent": 16354, "framesSkipped": 0, "droppedTicks": 0, "inputs": 15480, "sentBpsPerClient": 5397},
    {"tS": 17.0, "clients": 850, "ticks": 20, "loopP50Ms": 6.870, "loopP99Ms": 11.195, "loopMaxMs": 11.195, "cpuMeanMs": 3.490, "workerCpuMeanMs": 6.861, "phaseMeanMs": [0.288, 1.334, 3.170, 1.343, 0.849], "framesSent": 17400, "framesSkipped": 0, "droppedTicks": 0, "inputs": 16480, "sentBpsPerClient": 5465},
    {"tS": 18.0, "clients": 900, "ticks": 20, "loopP50Ms": 7.590, "loopP99Ms": 11.763, "loopMaxMs": 11.763, "cpuMeanMs": 4.010, "workerCpuMeanMs": 8.172, "phaseMeanMs": [0.307, 1.357, 3.563, 1.904, 0.665], "framesSent": 18462, "framesSkipped": 0, "droppedTicks": 0, "inputs": 17482, "sentBpsPerClient": 5376},
    {"tS": 19.0, "clients": 950, "ticks": 20, "loopP50Ms": 7.320, "loopP99Ms": 10.523, "loopMaxMs": 10.523, "cpuMeanMs": 4.067, "workerCpuMeanMs": 8.431, "phaseMeanMs": [0.282, 1.396, 3.407, 1.569, 0.562], "framesSent": 19505, "framesSkipped": 0, "droppedTicks": 0, "inputs": 18483, "sentBpsPerClient": 5463},
    {"tS": 20.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.270, "loopP99Ms": 10.712, "loopMaxMs": 10.712, "cpuMeanMs": 4.439, "workerCpuMeanMs": 8.606, "phaseMeanMs": [0.293, 1.509, 3.573, 1.403, 0.573], "framesSent": 20556, "framesSkipped": 0, "droppedTicks": 0, "inputs": 19480, "sentBpsPerClient": 5424},
    {"tS": 21.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.460, "loopP99Ms": 10.332, "loopMaxMs": 10.332, "cpuMeanMs": 4.641, "workerCpuMeanMs": 8.985, "phaseMeanMs": [0.308, 1.474, 3.569, 1.496, 0.685], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 5424},
    {"tS": 22.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.850, "loopP99Ms": 11.773, "loopMaxMs": 11.773, "cpuMeanMs": 4.433, "workerCpuMeanMs": 8.700, "phaseMeanMs": [0.300, 1.654, 3.499, 1.553, 1.062], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 5225},
    {"tS": 23.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.630, "loopP99Ms": 12.440, "loopMaxMs": 12.440, "cpuMeanMs": 4.415, "workerCpuMeanMs": 8.815, "phaseMeanMs": [0.280, 1.526, 3.279, 1.804, 0.822], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 5013},
    {"tS": 24.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.740, "loopP99Ms": 9.783, "loopMaxMs": 9.783, "cpuMeanMs": 3.920, "workerCpuMeanMs": 8.533, "phaseMeanMs": [0.254, 1.344, 3.330, 1.222, 0.985], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4978},
    {"tS": 25.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.560, "loopP99Ms": 11.468, "loopMaxMs": 11.468, "cpuMeanMs": 4.019, "workerCpuMeanMs": 8.188, "phaseMeanMs": [0.259, 1.482, 2.954, 1.272, 1.279], "framesSent": 21003, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4791},
    {"tS": 26.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.590, "loopP99Ms": 11.644, "loopMaxMs": 11.644, "cpuMeanMs": 4.055, "workerCpuMeanMs": 8.512, "phaseMeanMs": [0.266, 1.418, 3.497, 1.155, 1.316], "framesSent": 20997, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4544},
    {"tS": 27.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.370, "loopP99Ms": 12.277, "loopMaxMs": 12.277, "cpuMeanMs": 4.034, "workerCpuMeanMs": 8.152, "phaseMeanMs": [0.251, 1.288, 2.857, 1.330, 1.428], "framesSent": 20996, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4418},
    {"tS": 28.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.200, "loopP99Ms": 9.852, "loopMaxMs": 9.852, "cpuMeanMs": 4.079, "workerCpuMeanMs": 8.034, "phaseMeanMs": [0.245, 1.353, 3.405, 1.467, 0.739], "framesSent": 21004, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4375},
    {"tS": 29.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.960, "loopP99Ms": 12.086, "loopMaxMs": 12.086, "cpuMeanMs": 3.664, "workerCpuMeanMs": 8.398, "phaseMeanMs": [0.255, 1.175, 3.388, 1.148, 1.380], "framesSent": 20995, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4288},
    {"tS": 30.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.170, "loopP99Ms": 9.395, "loopMaxMs": 9.395, "cpuMeanMs": 3.596, "workerCpuMeanMs": 7.758, "phaseMeanMs": [0.248, 1.178, 2.982, 1.013, 1.082], "framesSent": 21002, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4302},
    {"tS": 31.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.250, "loopP99Ms": 11.746, "loopMaxMs": 11.746, "cpuMeanMs": 3.803, "workerCpuMeanMs": 8.288, "phaseMeanMs": [0.265, 1.190, 3.644, 1.314, 0.840], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4237},
    {"tS": 32.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.300, "loopP99Ms": 12.052, "loopMaxMs": 12.052, "cpuMeanMs": 3.476, "workerCpuMeanMs": 7.365, "phaseMeanMs": [0.226, 1.159, 3.107, 1.237, 1.023], "framesSent": 21003, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4171},
    {"tS": 33.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.290, "loopP99Ms": 8.239, "loopMaxMs": 8.239, "cpuMeanMs": 3.588, "workerCpuMeanMs": 7.972, "phaseMeanMs": [0.251, 1.116, 2.901, 1.164, 1.496], "framesSent": 20995, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4112},
    {"tS": 34.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.140, "loopP99Ms": 10.549, "loopMaxMs": 10.549, "cpuMeanMs": 3.528, "workerCpuMeanMs": 7.696, "phaseMeanMs": [0.257, 1.108, 3.194, 1.180, 1.525], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4068},
    {"tS": 35.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.520, "loopP99Ms": 10.559, "loopMaxMs": 10.559, "cpuMeanMs": 3.334, "workerCpuMeanMs": 7.667, "phaseMeanMs": [0.241, 1.066, 3.078, 1.238, 1.175], "framesSent": 21003, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 4017},
    {"tS": 36.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.250, "loopP99Ms": 21.496, "loopMaxMs": 21.496, "cpuMeanMs": 3.253, "workerCpuMeanMs": 7.134, "phaseMeanMs": [0.242, 1.020, 3.359, 1.455, 1.635], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3949},
    {"tS": 37.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.690, "loopP99Ms": 82.432, "loopMaxMs": 82.432, "cpuMeanMs": 3.097, "workerCpuMeanMs": 6.788, "phaseMeanMs": [0.226, 1.506, 3.336, 4.211, 1.415], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3974},
    {"tS": 38.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.650, "loopP99Ms": 9.012, "loopMaxMs": 9.012, "cpuMeanMs": 3.246, "workerCpuMeanMs": 7.239, "phaseMeanMs": [0.239, 1.016, 3.026, 1.224, 1.262], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3940},
    {"tS": 39.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.450, "loopP99Ms": 8.213, "loopMaxMs": 8.213, "cpuMeanMs": 3.069, "workerCpuMeanMs": 7.221, "phaseMeanMs": [0.231, 0.918, 2.936, 0.974, 1.545], "framesSent": 21002, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3866},
    {"tS": 40.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.470, "loopP99Ms": 10.303, "loopMaxMs": 10.303, "cpuMeanMs": 2.858, "workerCpuMeanMs": 6.805, "phaseMeanMs": [0.215, 1.024, 2.473, 1.283, 1.382], "framesSent": 20994, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3794},
    {"tS": 41.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.940, "loopP99Ms": 11.377, "loopMaxMs": 11.377, "cpuMeanMs": 3.265, "workerCpuMeanMs": 7.641, "phaseMeanMs": [0.266, 0.914, 3.513, 1.377, 1.133], "framesSent": 21003, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3841},
    {"tS": 42.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.140, "loopP99Ms": 12.092, "loopMaxMs": 12.092, "cpuMeanMs": 3.389, "workerCpuMeanMs": 7.742, "phaseMeanMs": [0.277, 0.870, 2.824, 1.369, 1.189], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3771},
    {"tS": 43.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.390, "loopP99Ms": 8.519, "loopMaxMs": 8.519, "cpuMeanMs": 3.189, "workerCpuMeanMs": 7.456, "phaseMeanMs": [0.259, 0.850, 3.069, 1.173, 1.109], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3698},
    {"tS": 44.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.800, "loopP99Ms": 11.344, "loopMaxMs": 11.344, "cpuMeanMs": 3.349, "workerCpuMeanMs": 7.424, "phaseMeanMs": [0.265, 0.878, 2.974, 1.605, 1.233], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3668},
    {"tS": 45.0, "clients": 1000, "ticks": 20, "loopP50Ms": 5.620, "loopP99Ms": 8.546, "loopMaxMs": 8.546, "cpuMeanMs": 3.010, "workerCpuMeanMs": 6.735, "phaseMeanMs": [0.233, 0.792, 2.583, 1.149, 0.926], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3702},
    {"tS": 46.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.450, "loopP99Ms": 8.159, "loopMaxMs": 8.159, "cpuMeanMs": 3.153, "workerCpuMeanMs": 7.389, "phaseMeanMs": [0.292, 0.871, 2.630, 1.545, 0.866], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3663},
    {"tS": 47.0, "clients": 1000, "ticks": 20, "loopP50Ms": 5.720, "loopP99Ms": 7.059, "loopMaxMs": 7.059, "cpuMeanMs": 2.903, "workerCpuMeanMs": 6.885, "phaseMeanMs": [0.261, 0.763, 2.436, 1.675, 0.621], "framesSent": 21002, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3657},
    {"tS": 48.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.420, "loopP99Ms": 9.873, "loopMaxMs": 9.873, "cpuMeanMs": 3.105, "workerCpuMeanMs": 6.564, "phaseMeanMs": [0.271, 0.898, 2.942, 1.624, 0.968], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3681},
    {"tS": 49.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.720, "loopP99Ms": 8.196, "loopMaxMs": 8.196, "cpuMeanMs": 3.149, "workerCpuMeanMs": 7.190, "phaseMeanMs": [0.330, 0.875, 3.089, 1.772, 0.516], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3594},
    {"tS": 50.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.410, "loopP99Ms": 10.390, "loopMaxMs": 10.390, "cpuMeanMs": 2.967, "workerCpuMeanMs": 6.936, "phaseMeanMs": [0.261, 0.852, 2.723, 1.761, 1.070], "framesSent": 20997, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3568},
    {"tS": 51.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.120, "loopP99Ms": 9.126, "loopMaxMs": 9.126, "cpuMeanMs": 3.347, "workerCpuMeanMs": 7.279, "phaseMeanMs": [0.297, 0.824, 2.962, 1.811, 0.504], "framesSent": 21004, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3470},
    {"tS": 52.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.010, "loopP99Ms": 10.408, "loopMaxMs": 10.408, "cpuMeanMs": 3.401, "workerCpuMeanMs": 7.828, "phaseMeanMs": [0.314, 0.858, 2.809, 2.413, 0.884], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3441},
    {"tS": 53.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.090, "loopP99Ms": 9.541, "loopMaxMs": 9.541, "cpuMeanMs": 3.354, "workerCpuMeanMs": 7.592, "phaseMeanMs": [0.285, 0.863, 3.077, 1.720, 1.230], "framesSent": 20996, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3448},
    {"tS": 54.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.400, "loopP99Ms": 9.443, "loopMaxMs": 9.443, "cpuMeanMs": 3.298, "workerCpuMeanMs": 7.368, "phaseMeanMs": [0.295, 0.844, 3.136, 1.308, 1.095], "framesSent": 21004, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3478},
    {"tS": 55.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.940, "loopP99Ms": 12.819, "loopMaxMs": 12.819, "cpuMeanMs": 3.145, "workerCpuMeanMs": 7.498, "phaseMeanMs": [0.274, 0.839, 2.929, 1.843, 1.097], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3503},
    {"tS": 56.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.100, "loopP99Ms": 7.898, "loopMaxMs": 7.898, "cpuMeanMs": 2.948, "workerCpuMeanMs": 7.054, "phaseMeanMs": [0.252, 0.846, 2.776, 1.140, 1.230], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3487},
    {"tS": 57.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.220, "loopP99Ms": 35.489, "loopMaxMs": 35.489, "cpuMeanMs": 3.117, "workerCpuMeanMs": 7.562, "phaseMeanMs": [0.277, 0.962, 3.771, 3.083, 1.243], "framesSent": 21010, "framesSkipped": 0, "droppedTicks": 0, "inputs": 19696, "sentBpsPerClient": 3439},
    {"tS": 58.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.420, "loopP99Ms": 20.780, "loopMaxMs": 20.780, "cpuMeanMs": 2.823, "workerCpuMeanMs": 6.976, "phaseMeanMs": [0.247, 0.816, 3.390, 1.457, 1.181], "framesSent": 20990, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20304, "sentBpsPerClient": 3420},
    {"tS": 59.0, "clients": 1000, "ticks": 20, "loopP50Ms": 5.550, "loopP99Ms": 7.405, "loopMaxMs": 7.405, "cpuMeanMs": 2.480, "workerCpuMeanMs": 6.662, "phaseMeanMs": [0.215, 0.745, 2.608, 1.140, 0.893], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3397},
    {"tS": 60.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.320, "loopP99Ms": 12.104, "loopMaxMs": 12.104, "cpuMeanMs": 3.110, "workerCpuMeanMs": 7.256, "phaseMeanMs": [0.280, 0.896, 2.795, 1.286, 1.589], "framesSent": 20998, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3421},
    {"tS": 61.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.090, "loopP99Ms": 9.155, "loopMaxMs": 9.155, "cpuMeanMs": 3.226, "workerCpuMeanMs": 7.212, "phaseMeanMs": [0.281, 0.874, 2.782, 1.420, 1.647], "framesSent": 21004, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3359},
    {"tS": 62.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.610, "loopP99Ms": 10.167, "loopMaxMs": 10.167, "cpuMeanMs": 3.025, "workerCpuMeanMs": 7.292, "phaseMeanMs": [0.268, 0.806, 2.923, 1.524, 1.419], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3369},
    {"tS": 63.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.780, "loopP99Ms": 11.596, "loopMaxMs": 11.596, "cpuMeanMs": 2.947, "workerCpuMeanMs": 6.771, "phaseMeanMs": [0.261, 0.829, 2.465, 1.258, 2.195], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3340},
    {"tS": 64.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.240, "loopP99Ms": 11.401, "loopMaxMs": 11.401, "cpuMeanMs": 2.806, "workerCpuMeanMs": 6.975, "phaseMeanMs": [0.250, 0.808, 2.762, 1.061, 1.646], "framesSent": 21002, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3288},
    {"tS": 65.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.460, "loopP99Ms": 8.941, "loopMaxMs": 8.941, "cpuMeanMs": 3.180, "workerCpuMeanMs": 7.459, "phaseMeanMs": [0.270, 0.892, 2.982, 1.691, 0.915], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3305},
    {"tS": 66.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.630, "loopP99Ms": 10.169, "loopMaxMs": 10.169, "cpuMeanMs": 3.229, "workerCpuMeanMs": 7.477, "phaseMeanMs": [0.280, 0.917, 2.788, 1.309, 1.695], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3324},
    {"tS": 67.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.980, "loopP99Ms": 11.008, "loopMaxMs": 11.008, "cpuMeanMs": 3.032, "workerCpuMeanMs": 7.018, "phaseMeanMs": [0.263, 0.809, 2.350, 1.740, 1.941], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3351},
    {"tS": 68.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.400, "loopP99Ms": 8.750, "loopMaxMs": 8.750, "cpuMeanMs": 2.619, "workerCpuMeanMs": 6.187, "phaseMeanMs": [0.260, 0.826, 2.217, 0.999, 2.076], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3374},
    {"tS": 69.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.780, "loopP99Ms": 9.578, "loopMaxMs": 9.578, "cpuMeanMs": 2.922, "workerCpuMeanMs": 6.077, "phaseMeanMs": [0.268, 0.854, 2.105, 0.978, 2.510], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3328},
    {"tS": 70.0, "clients": 1000, "ticks": 20, "loopP50Ms": 5.690, "loopP99Ms": 9.283, "loopMaxMs": 9.283, "cpuMeanMs": 2.524, "workerCpuMeanMs": 5.783, "phaseMeanMs": [0.253, 0.734, 2.050, 1.148, 1.907], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3305},
    {"tS": 71.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.360, "loopP99Ms": 9.043, "loopMaxMs": 9.043, "cpuMeanMs": 2.785, "workerCpuMeanMs": 6.471, "phaseMeanMs": [0.263, 0.804, 2.470, 1.556, 1.275], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3246},
    {"tS": 72.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.130, "loopP99Ms": 7.901, "loopMaxMs": 7.901, "cpuMeanMs": 3.101, "workerCpuMeanMs": 7.042, "phaseMeanMs": [0.280, 0.819, 2.458, 1.500, 0.966], "framesSent": 20999, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3158},
    {"tS": 73.0, "clients": 1000, "ticks": 20, "loopP50Ms": 7.290, "loopP99Ms": 10.825, "loopMaxMs": 10.825, "cpuMeanMs": 3.210, "workerCpuMeanMs": 7.053, "phaseMeanMs": [0.277, 0.836, 2.930, 1.734, 1.448], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3179},
    {"tS": 74.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.370, "loopP99Ms": 9.602, "loopMaxMs": 9.602, "cpuMeanMs": 2.772, "workerCpuMeanMs": 5.859, "phaseMeanMs": [0.247, 0.832, 2.196, 1.918, 1.379], "framesSent": 20995, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3256},
    {"tS": 75.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.710, "loopP99Ms": 18.048, "loopMaxMs": 18.048, "cpuMeanMs": 2.833, "workerCpuMeanMs": 6.120, "phaseMeanMs": [0.319, 0.901, 2.683, 1.800, 2.060], "framesSent": 21006, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3237},
    {"tS": 76.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.250, "loopP99Ms": 7.635, "loopMaxMs": 7.635, "cpuMeanMs": 2.698, "workerCpuMeanMs": 5.908, "phaseMeanMs": [0.284, 0.812, 2.209, 1.574, 1.352], "framesSent": 20998, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3257},
    {"tS": 77.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.430, "loopP99Ms": 9.347, "loopMaxMs": 9.347, "cpuMeanMs": 2.882, "workerCpuMeanMs": 6.026, "phaseMeanMs": [0.262, 0.951, 2.556, 1.355, 1.412], "framesSent": 21001, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3275},
    {"tS": 78.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.420, "loopP99Ms": 8.980, "loopMaxMs": 8.980, "cpuMeanMs": 3.095, "workerCpuMeanMs": 7.196, "phaseMeanMs": [0.300, 0.860, 2.868, 1.955, 0.637], "framesSent": 21000, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3228},
    {"tS": 79.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.580, "loopP99Ms": 9.021, "loopMaxMs": 9.021, "cpuMeanMs": 3.110, "workerCpuMeanMs": 6.929, "phaseMeanMs": [0.295, 0.867, 2.560, 1.628, 1.264], "framesSent": 20998, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3243},
    {"tS": 80.0, "clients": 1000, "ticks": 20, "loopP50Ms": 6.610, "loopP99Ms": 12.200, "loopMaxMs": 12.200, "cpuMeanMs": 2.955, "workerCpuMeanMs": 6.271, "phaseMeanMs": [0.242, 0.900, 2.424, 1.475, 1.526], "framesSent": 21002, "framesSkipped": 0, "droppedTicks": 0, "inputs": 20000, "sentBpsPerClient": 3181},
    {"tS": 80.1, "clients": 0, "ticks": 2, "loopP50Ms": 0.290, "loopP99Ms": 19.581, "loopMaxMs": 19.581, "cpuMeanMs": 6.148, "workerCpuMeanMs": 0.055, "phaseMeanMs": [9.037, 0.044, 0.014, 0.152, 0.685], "framesSent": 66, "framesSkipped": 0, "droppedTicks": 0, "inputs": 1000, "sentBpsPerClient": 0}
  ]},
  "errors": [],
  "checks": {"allJoined": true, "noDisconnects": true, "avgDownstreamWithinTarget": true, "everyClientWithinHardCap": true, "missedTicksUnder1Percent": true, "loopP99WithinTarget": true, "noStaleOrDroppedInputs": true, "framesSkippedUnder1Percent": true, "ticksDroppedUnder1Percent": true, "noSnapshotErrors": true, "noThreadsLeft": true},
  "pass": true
}
