From ac064bbb8e9a2b63cfec2f5280ddeef3aa9de3f5 Mon Sep 17 00:00:00 2001 From: protheeuz Date: Tue, 2 Jun 2026 22:02:08 +0700 Subject: [PATCH 1/4] chore: add batching telemetry --- benchmark/Benchmarks.md | 7 ++-- benchmark/src/client/init.client.luau | 30 ++++++++++------- benchmark/src/shared/BenchmarkConfig.luau | 12 +++++-- src/Core/Batcher.luau | 41 +++++++++++++++++++++++ 4 files changed, 73 insertions(+), 17 deletions(-) diff --git a/benchmark/Benchmarks.md b/benchmark/Benchmarks.md index 3609222..e9d1586 100644 --- a/benchmark/Benchmarks.md +++ b/benchmark/Benchmarks.md @@ -17,7 +17,7 @@ Treat rows with low frame counts or partial packet counts as incomplete rows, no ## Result Summary -Satset is clean in all default and latency rows. The current default profile still fragments large reliable payloads. That shows up as 3 reliable commits per frame for Vectors and Entities, and 8 reliable commits per frame for Strings. The latency profile uses one reliable commit per frame and cuts those bandwidth numbers sharply. +Satset is clean in all default and latency rows. These are benchmark controls, not public Satset modes. The current default benchmark control still fragments large reliable payloads. That shows up as 3 reliable commits per frame for Vectors and Entities, and 8 reliable commits per frame for Strings. The latency benchmark control uses one reliable commit per frame and cuts those bandwidth numbers sharply. Current Satset default rows: @@ -45,7 +45,7 @@ Opinionated read: - Satset's serializer is not the source of the default-mode gap. Raw bytes per packet are almost identical between default and latency. - Commit count is the main signal. Vectors and Entities use 3 commits per frame in default mode. Strings uses 8. -- The next useful profile is a named throughput profile that keeps one reliable commit per frame without changing default behavior. +- The next runtime experiment should aim for one default behavior that handles both light and heavy payloads. A separate public throughput mode is not the goal. - Repeated-id segmentation should be tested separately. It can reduce benchmark bytes in homogeneous rows, but it does not explain the large default-mode gap by itself. --- @@ -265,6 +265,7 @@ SingleValue is measurement-noise territory for the compact libraries. Warp, Pack - Satset profile source: `benchmark/src/shared/BenchmarkConfig.luau`. - Default profile: `reliableThreshold = 60000`, `maxPacketsPerFrame = 20`. - Latency profile: `reliableThreshold = 0`, `maxPacketsPerFrame = 0`. +- These profiles are benchmark controls. They do not define public Satset modes. - Validation: the server verifies every received packet. The benchmark does not prove a single universal winner. It shows how each library behaves under one heavy local Studio workload. Use the packet counts and min FPS before comparing bandwidth. @@ -282,4 +283,4 @@ The benchmark place file is [satset-benchmark.rbxl](./satset-benchmark.rbxl). 2. If you are testing local source changes, connect Rojo to this repo before pressing Play. 3. Set `activeMode` in `benchmark/src/shared/BenchmarkConfig.luau` to `"default"` or `"latency"`. 4. Press Play with one local player and wait until Studio Output prints `Generated results`. -5. The server creates `game.Result`, a `StringValue` whose `Value` contains the JSON for the run. Use that value for `default-mode-result.json` or `latency-mode-result.json`, based on the selected mode. +5. The server creates `game.Result`, a `StringValue` whose `Value` contains the JSON for the run. Use that value for the result file that matches the selected mode. diff --git a/benchmark/src/client/init.client.luau b/benchmark/src/client/init.client.luau index 2a3496d..3410006 100644 --- a/benchmark/src/client/init.client.luau +++ b/benchmark/src/client/init.client.luau @@ -119,10 +119,16 @@ local function waitForDrain(baselineKbps: number): number return os.clock() - started end -local function assertSplitDebugStats(stats: { [string]: number }?, source: string) - if not stats or stats.packetDecodeGcKb == nil or stats.listenerCallGcKb == nil then +local function assertSatsetDebugStats(stats: { [string]: number }?, source: string) + if + not stats + or stats.packetDecodeGcKb == nil + or stats.listenerCallGcKb == nil + or stats.exactBufferPoolHits == nil + or stats.exactBufferPoolMisses == nil + then error( - `[Satset Benchmark] {source} is missing split GC stats. Stop Play, reconnect Rojo, and rerun the benchmark.` + `[Satset Benchmark] {source} is missing rc.2 debug stats. Stop Play, reconnect Rojo, and rerun the benchmark.` ) end end @@ -217,12 +223,12 @@ local function runBenchmark(tool: string, bench: string): Benchmark if lowerTool == "satset" then local debugStats = SatsetBatcher.getDebugStats() - assertSplitDebugStats(debugStats, "Client SatsetBatcher") + assertSatsetDebugStats(debugStats, "Client SatsetBatcher") result.DebugStats = debugStats - if BenchmarkConfig.activeMode == "latency" and debugStats.reliableCommits > totalFrames + 2 then + if BenchmarkConfig.expectsSingleReliableCommit and debugStats.reliableCommits > totalFrames + 2 then error( - `[Satset Benchmark] reliableThreshold = 0 produced {debugStats.reliableCommits} reliable commits across {totalFrames} frames` + `[Satset Benchmark] {BenchmarkConfig.activeMode} expected one reliable commit per frame, but produced {debugStats.reliableCommits} reliable commits across {totalFrames} frames` ) end end @@ -235,8 +241,8 @@ local function runAll() Modes = require(ReplicatedStorage.Shared.modes) local results: Results = {} - assertSplitDebugStats(SatsetBatcher.getDebugStats(), "Client SatsetBatcher") - assertSplitDebugStats( + assertSatsetDebugStats(SatsetBatcher.getDebugStats(), "Client SatsetBatcher") + assertSatsetDebugStats( ReplicatedStorage.Shared.GetRecieved:InvokeServer("getSatsetDebugStats"), "Server SatsetBatcher" ) @@ -257,19 +263,19 @@ local function runAll() if string.lower(tool) == "satset" then local debugStats = SatsetBatcher.getDebugStats() - assertSplitDebugStats(debugStats, "Client SatsetBatcher") + assertSatsetDebugStats(debugStats, "Client SatsetBatcher") results[bench][tool].DebugStats = debugStats if - BenchmarkConfig.activeMode == "latency" + BenchmarkConfig.expectsSingleReliableCommit and debugStats.reliableCommits > (results[bench][tool].Frames or 0) + 2 then error( - `[Satset Benchmark] reliableThreshold = 0 produced {debugStats.reliableCommits} reliable commits across {results[bench][tool].Frames or 0} frames` + `[Satset Benchmark] {BenchmarkConfig.activeMode} expected one reliable commit per frame, but produced {debugStats.reliableCommits} reliable commits across {results[bench][tool].Frames or 0} frames` ) end local serverDebugStats = ReplicatedStorage.Shared.GetRecieved:InvokeServer("getSatsetDebugStats") - assertSplitDebugStats(serverDebugStats, "Server SatsetBatcher") + assertSatsetDebugStats(serverDebugStats, "Server SatsetBatcher") results[bench][tool].ServerDebugStats = serverDebugStats end end diff --git a/benchmark/src/shared/BenchmarkConfig.luau b/benchmark/src/shared/BenchmarkConfig.luau index 633e08b..59bc8cc 100644 --- a/benchmark/src/shared/BenchmarkConfig.luau +++ b/benchmark/src/shared/BenchmarkConfig.luau @@ -1,5 +1,5 @@ -- Select which Satset batching profile the benchmark runner uses. --- Change activeMode to "latency" when regenerating latency-mode-result.json. +-- These profiles are benchmark controls, not public Satset modes. local activeMode = "default" local modes = { @@ -8,17 +8,25 @@ local modes = { reliableThreshold = 60000, maxPacketsPerFrame = 20, }, + expectsSingleReliableCommit = false, }, latency = { batching = { reliableThreshold = 0, maxPacketsPerFrame = 0, }, + expectsSingleReliableCommit = true, }, } +local selectedMode = modes[activeMode] +if not selectedMode then + error(`Unknown benchmark mode: {activeMode}`) +end + return { activeMode = activeMode, - batching = modes[activeMode].batching, + batching = selectedMode.batching, + expectsSingleReliableCommit = selectedMode.expectsSingleReliableCommit, modes = modes, } diff --git a/src/Core/Batcher.luau b/src/Core/Batcher.luau index ef2fdbc..e6186b3 100644 --- a/src/Core/Batcher.luau +++ b/src/Core/Batcher.luau @@ -49,6 +49,15 @@ export type DebugStats = { listenerCallGcSamples: number, listenerDispatchGcKb: number, listenerDispatchGcSamples: number, + exactBufferPoolHits: number, + exactBufferPoolMisses: number, + exactBufferPoolAcceptedReleases: number, + exactBufferPoolRejectedBySizeCap: number, + exactBufferPoolRejectedByPerSizeCap: number, + exactBufferPoolRejectedBySizeClassCap: number, + exactBufferPoolRejectedByTotalByteCap: number, + exactBufferPoolBytes: number, + exactBufferPoolSizeClasses: number, } export type DebugGcBucket = @@ -105,6 +114,15 @@ local debugStats: DebugStats = { listenerCallGcSamples = 0, listenerDispatchGcKb = 0, listenerDispatchGcSamples = 0, + exactBufferPoolHits = 0, + exactBufferPoolMisses = 0, + exactBufferPoolAcceptedReleases = 0, + exactBufferPoolRejectedBySizeCap = 0, + exactBufferPoolRejectedByPerSizeCap = 0, + exactBufferPoolRejectedBySizeClassCap = 0, + exactBufferPoolRejectedByTotalByteCap = 0, + exactBufferPoolBytes = 0, + exactBufferPoolSizeClasses = 0, } local debugGcEnabled = false @@ -209,6 +227,15 @@ function Batcher.getDebugStats(): DebugStats listenerCallGcSamples = debugStats.listenerCallGcSamples, listenerDispatchGcKb = debugStats.listenerDispatchGcKb, listenerDispatchGcSamples = debugStats.listenerDispatchGcSamples, + exactBufferPoolHits = debugStats.exactBufferPoolHits, + exactBufferPoolMisses = debugStats.exactBufferPoolMisses, + exactBufferPoolAcceptedReleases = debugStats.exactBufferPoolAcceptedReleases, + exactBufferPoolRejectedBySizeCap = debugStats.exactBufferPoolRejectedBySizeCap, + exactBufferPoolRejectedByPerSizeCap = debugStats.exactBufferPoolRejectedByPerSizeCap, + exactBufferPoolRejectedBySizeClassCap = debugStats.exactBufferPoolRejectedBySizeClassCap, + exactBufferPoolRejectedByTotalByteCap = debugStats.exactBufferPoolRejectedByTotalByteCap, + exactBufferPoolBytes = exactBufferPoolBytes, + exactBufferPoolSizeClasses = exactBufferPoolSizeClasses, } end @@ -233,6 +260,13 @@ function Batcher.resetDebugStats() debugStats.listenerCallGcSamples = 0 debugStats.listenerDispatchGcKb = 0 debugStats.listenerDispatchGcSamples = 0 + debugStats.exactBufferPoolHits = 0 + debugStats.exactBufferPoolMisses = 0 + debugStats.exactBufferPoolAcceptedReleases = 0 + debugStats.exactBufferPoolRejectedBySizeCap = 0 + debugStats.exactBufferPoolRejectedByPerSizeCap = 0 + debugStats.exactBufferPoolRejectedBySizeClassCap = 0 + debugStats.exactBufferPoolRejectedByTotalByteCap = 0 end local function acquireExactBuffer(size: number): buffer @@ -243,10 +277,12 @@ local function acquireExactBuffer(size: number): buffer if pooled then bucket[index] = nil exactBufferPoolBytes -= size + debugStats.exactBufferPoolHits += 1 return pooled end end + debugStats.exactBufferPoolMisses += 1 return buffer.create(size) end @@ -269,16 +305,19 @@ end local function releaseExactBuffer(b: buffer) local size = buffer.len(b) if size > EXACT_BUFFER_POOL_MAX_BUFFER_SIZE then + debugStats.exactBufferPoolRejectedBySizeCap += 1 return end if exactBufferPoolBytes + size > EXACT_BUFFER_POOL_MAX_BYTES then + debugStats.exactBufferPoolRejectedByTotalByteCap += 1 return end local bucket = exactBufferPool[size] if not bucket then if not reserveExactBufferSizeClass() then + debugStats.exactBufferPoolRejectedBySizeClassCap += 1 return end @@ -286,11 +325,13 @@ local function releaseExactBuffer(b: buffer) exactBufferPool[size] = bucket exactBufferPoolSizeClasses += 1 elseif #bucket >= EXACT_BUFFER_POOL_MAX_PER_SIZE then + debugStats.exactBufferPoolRejectedByPerSizeCap += 1 return end table.insert(bucket, b) exactBufferPoolBytes += size + debugStats.exactBufferPoolAcceptedReleases += 1 end local function deferExactBufferRelease(b: buffer) From e6f775da017e3a2ebbaf9567b60caaf4a1d6f27b Mon Sep 17 00:00:00 2001 From: protheeuz Date: Wed, 3 Jun 2026 04:14:56 +0700 Subject: [PATCH 2/4] feat(benchmark): add quicknet comparison --- benchmark/default.project.json | 23 +++++++- benchmark/src/shared/modes/quicknet.luau | 44 ++++++++++++++++ .../modes/quicknet/EnumsToNativeTypes.luau | 52 +++++++++++++++++++ 3 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 benchmark/src/shared/modes/quicknet.luau create mode 100644 benchmark/src/shared/modes/quicknet/EnumsToNativeTypes.luau diff --git a/benchmark/default.project.json b/benchmark/default.project.json index 8c437f8..8f6f24e 100644 --- a/benchmark/default.project.json +++ b/benchmark/default.project.json @@ -42,10 +42,31 @@ "Blink": { "$path": "../references/blink/src" }, + "QuickNet": { + "$path": "../references/QuickNet/src/QuickNet.luau", + "DataTypes": { + "$path": "../references/QuickNet/src/QuickNet/DataTypes.luau" + }, + "Enums": { + "$path": "../references/QuickNet/src/QuickNet/Enums.luau" + }, + "EnumsToNativeTypes": { + "$path": "src/shared/modes/quicknet/EnumsToNativeTypes.luau" + }, + "Parser": { + "$path": "../references/QuickNet/src/QuickNet/Parser.luau" + }, + "Serialize": { + "$path": "../references/QuickNet/src/QuickNet/Serialize.luau" + }, + "Types": { + "$path": "../references/QuickNet/src/QuickNet/Types.luau" + } + }, "SuphiPacket": { "$path": "../references/5uphi-Packet/Packet" } } } } -} \ No newline at end of file +} diff --git a/benchmark/src/shared/modes/quicknet.luau b/benchmark/src/shared/modes/quicknet.luau new file mode 100644 index 0000000..e664401 --- /dev/null +++ b/benchmark/src/shared/modes/quicknet.luau @@ -0,0 +1,44 @@ +-- QuickNet benchmark mode. +local QuickNet = require(game:GetService("ReplicatedStorage").references.QuickNet) +local Data = QuickNet.Data +local BENCHMARK_RATE_LIMIT = 1_000_000 + +local function wrap(event) + event:SetRateLimit(BENCHMARK_RATE_LIMIT, 1) + + return { + fire = function(data) + event:FireServer(data) + end, + listen = function(callback) + event.OnServerEvent:Connect(callback) + end, + } +end + +return { + Booleans = wrap(QuickNet:register("QuickNetBenchBooleans", { Data.Boolean })), + Entities = wrap(QuickNet:register("QuickNetBenchEntities", { + { + id = Data.NumberU8, + x = Data.NumberU8, + y = Data.NumberU8, + z = Data.NumberU8, + orientation = Data.NumberU8, + animation = Data.NumberU8, + }, + })), + Vectors = wrap(QuickNet:register("QuickNetBenchVectors", { Data.Vector3F16 })), + Strings = wrap(QuickNet:register("QuickNetBenchStrings", { Data.String })), + Mixed = wrap(QuickNet:register("QuickNetBenchMixed", { + id = Data.NumberU8, + health = Data.NumberU8, + position = Data.Vector3F16, + velocity = Data.Vector3F16, + name = Data.String, + isRunning = Data.Boolean, + animation = Data.NumberU8, + team = Data.NumberU8, + })), + SingleValue = wrap(QuickNet:register("QuickNetBenchSingleValue", Data.NumberU8)), +} diff --git a/benchmark/src/shared/modes/quicknet/EnumsToNativeTypes.luau b/benchmark/src/shared/modes/quicknet/EnumsToNativeTypes.luau new file mode 100644 index 0000000..5ab10d0 --- /dev/null +++ b/benchmark/src/shared/modes/quicknet/EnumsToNativeTypes.luau @@ -0,0 +1,52 @@ +local Enums = require(script.Parent.Enums) + +return { + [Enums.NumberU4] = "number", + [Enums.NumberU8] = "number", + [Enums.NumberU16] = "number", + [Enums.NumberU32] = "number", + [Enums.NumberI8] = "number", + [Enums.NumberI16] = "number", + [Enums.NumberI32] = "number", + [Enums.NumberF16] = "number", + [Enums.NumberF32] = "number", + [Enums.NumberF64] = "number", + [Enums.String] = "string", + [Enums.StringLong] = "string", + [Enums.Boolean] = "boolean", + [Enums.Nil] = "nil", + [Enums.Vector3FX8] = "Vector3", + [Enums.Vector3I16] = "Vector3", + [Enums.Vector3FX16] = "Vector3", + [Enums.Vector3F16] = "Vector3", + [Enums.Vector3F32] = "Vector3", + [Enums.Vector2FX8] = "Vector2", + [Enums.Vector2I16] = "Vector2", + [Enums.Vector2FX16] = "Vector2", + [Enums.Vector2F16] = "Vector2", + [Enums.Vector2F32] = "Vector2", + [Enums.CFrameFX8] = "CFrame", + [Enums.CFrameI16FX16] = "CFrame", + [Enums.CFrameFX16] = "CFrame", + [Enums.CFrameF16] = "CFrame", + [Enums.CFrameF32Aligned] = "CFrame", + [Enums.CFrameF32FX16] = "CFrame", + [Enums.CFrameF32] = "CFrame", + [Enums.Color3] = "Color3", + [Enums.BrickColor] = "BrickColor", + [Enums.Buffer] = "buffer", + [Enums.EnumItem] = "EnumItem", + [Enums.Instance] = "Instance", + [Enums.Player] = "Instance", + [Enums.DateTime32] = "DateTime", + [Enums.DateTime64] = "DateTime", + [Enums.TweenInfo] = "TweenInfo", + [Enums.ColorSequence] = "ColorSequence", + [Enums.NumberSequence] = "NumberSequence", + [Enums.NumberRange] = "NumberRange", + [Enums.UDim] = "UDim", + [Enums.UDim2] = "UDim2", + [Enums.Region3] = "Region3", + [Enums.PhysicalProperties] = "PhysicalProperties", + [Enums.Rect] = "Rect", +} From 7c6e36ee42a2eec1f8bc9a2157d9fd34ce64d15c Mon Sep 17 00:00:00 2001 From: protheeuz Date: Wed, 3 Jun 2026 04:15:25 +0700 Subject: [PATCH 3/4] chore(benchmark): consolidate benchmark result data --- benchmark/Benchmarks.md | 353 ++-- benchmark/benchmark-result.json | 2186 +++++++++++++++++++++ benchmark/default-mode-result.json | 1898 ------------------ benchmark/latency-mode-result.json | 1898 ------------------ benchmark/src/shared/BenchmarkConfig.luau | 31 +- 5 files changed, 2314 insertions(+), 4052 deletions(-) create mode 100644 benchmark/benchmark-result.json delete mode 100644 benchmark/default-mode-result.json delete mode 100644 benchmark/latency-mode-result.json diff --git a/benchmark/Benchmarks.md b/benchmark/Benchmarks.md index e9d1586..68c69d6 100644 --- a/benchmark/Benchmarks.md +++ b/benchmark/Benchmarks.md @@ -1,259 +1,153 @@ # [Satset](https://github.com/bookek/satset) Networking Benchmarks -**Last updated:** May 25, 2026 +**Last updated:** June 3, 2026 -These benchmarks compare Satset with native Roblox remotes and several community networking libraries. The benchmark runner fires 200 events per frame for 10 seconds. A `120K / 120K` sent/received count means 120,000 events were sent and verified by the server. +These benchmarks compare **Satset** with native Roblox remotes and several community networking libraries. The runner fires 200 events per frame for 10 seconds with one local player in Roblox Studio. A `120K / 120K` sent/received count means 120,000 events were sent by the client and verified by the server. -The tables use the raw fields from `default-mode-result.json` and `latency-mode-result.json`. +The tables use the raw fields from `benchmark-result.json`. -- `Bandwidth` is Roblox `Stats.DataSendKbps` p50. -- `Normalized` is `Stats.DataSendKbps` adjusted to a 60 FPS baseline. -- `Drain` is seconds. +- `Normalized` is Roblox `Stats.DataSendKbps` adjusted to a 60 FPS baseline. +- `Drain` is seconds spent waiting for bandwidth to return near baseline after each row. - `Loss` is only `Sent` vs `Received`. A partial run can still show `0.0%` loss. - -Treat rows with low frame counts or partial packet counts as incomplete rows, not winners. ByteNet in the Strings test is the clearest example: it reports `0.00` bandwidth because the run stops early, not because it sends data for free. +- Treat rows with low frame counts or partial packet counts as incomplete rows, not winners. --- ## Result Summary -Satset is clean in all default and latency rows. These are benchmark controls, not public Satset modes. The current default benchmark control still fragments large reliable payloads. That shows up as 3 reliable commits per frame for Vectors and Entities, and 8 reliable commits per frame for Strings. The latency benchmark control uses one reliable commit per frame and cuts those bandwidth numbers sharply. - -Current Satset default rows: +This run uses one Satset benchmark control: -| Payload | Frames | Sent / Received | Min FPS | Commits / frame | Normalized | -| :--- | ---: | :--- | ---: | ---: | ---: | -| Vectors | 601 | 120.2K / 120.2K | 60 | 3 | 118.13 | -| Booleans | 601 | 120.2K / 120.2K | 60 | 1 | 10.43 | -| Mixed | 601 | 120.2K / 120.2K | 60 | 1 | 4.29 | -| Entities | 601 | 120.2K / 120.2K | 60 | 3 | 117.53 | -| Strings | 601 | 120.2K / 120.2K | 60 | 8 | 899.63 | -| SingleValue | 601 | 120.2K / 120.2K | 60 | 1 | 2.39 | +```luau +reliableThreshold = 0 +maxPacketsPerFrame = 0 +``` -Current Satset latency rows: +That is not a public Satset mode. It is the current benchmark control for the rc.2 candidate behavior: one reliable commit per frame. -| Payload | Frames | Sent / Received | Min FPS | Commits / frame | Normalized | -| :--- | ---: | :--- | ---: | ---: | ---: | -| Vectors | 600 | 120K / 120K | 60 | 1 | 38.84 | -| Booleans | 601 | 120.2K / 120.2K | 60 | 1 | 10.38 | -| Mixed | 600 | 120K / 120K | 60 | 1 | 4.31 | -| Entities | 601 | 120.2K / 120.2K | 60 | 1 | 39.15 | -| Strings | 600 | 120K / 120K | 60 | 1 | 96.37 | -| SingleValue | 601 | 120.2K / 120.2K | 60 | 1 | 2.38 | +Satset now sends one reliable commit per frame in every Satset row. The data is mostly stable, but not perfectly full-volume: -Opinionated read: +| Payload | Frames | Min FPS | Sent / Received | Commits / Frames | Normalized | Drain | +| :--- | ---: | ---: | :--- | :--- | ---: | ---: | +| Vectors | 600 | 59 | 120K / 120K | 600 / 600 | 39.02 | 7.82 | +| Booleans | 601 | 60 | 120.2K / 120.2K | 601 / 601 | 10.34 | 5.22 | +| Mixed | 600 | 60 | 120K / 120K | 600 / 600 | 4.34 | 4.23 | +| Entities | 599 | 59 | 119.8K / 119.8K | 599 / 599 | 38.96 | 7.77 | +| SingleValue | 601 | 60 | 120.2K / 120.2K | 601 / 601 | 2.46 | 3.43 | +| Strings | 601 | 60 | 120.2K / 120.2K | 601 / 601 | 96.43 | 9.75 | -- Satset's serializer is not the source of the default-mode gap. Raw bytes per packet are almost identical between default and latency. -- Commit count is the main signal. Vectors and Entities use 3 commits per frame in default mode. Strings uses 8. -- The next runtime experiment should aim for one default behavior that handles both light and heavy payloads. A separate public throughput mode is not the goal. -- Repeated-id segmentation should be tested separately. It can reduce benchmark bytes in homogeneous rows, but it does not explain the large default-mode gap by itself. - ---- +QuickNet was added to this run. Its rate limit is raised in the adapter so the benchmark measures the payload path instead of QuickNet's default anti-spam behavior. -## Payloads +Main read: -| Payload | Contents | -| :--- | :--- | -| Vectors | 100 `Vector3` values. Satset uses `Vector3F16`. | -| Booleans | 1,000 boolean values. | -| Mixed | One table with integers, booleans, vectors, and a short string. | -| Entities | 100 records, each with six `u8` fields. | -| Strings | 100 short strings, each 8 to 32 characters. | -| SingleValue | One `u8` value. | +- Satset no longer has the old fragmented default-path bandwidth gap. +- QuickNet is close to Satset in Vectors, Booleans, Strings, and SingleValue. +- QuickNet is lower than Satset in Mixed in this run. +- QuickNet's Entities row is partial at `110.4K / 110.4K`, so that row should not be treated as a clean win. +- Warp still has the lowest raw bandwidth in several payloads, but some Warp rows are partial too. --- ## Vectors -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 60 | 179145.70 | 179145.71 | 9.65 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 60 / 60 | 15641.98 | 15641.98 | 22.55 | 120K / 120K | 0.0% | -| ByteNet | 60 / 59 / 60 | 72.48 | 72.48 | 9.43 | 119.8K / 119.8K | 0.0% | -| Warp | 60 / 54 / 60 | 2.89 | 2.93 | 5.02 | 107.2K / 107.2K | 0.0% | -| NetRay | 60 / 60 / 61 | 72.54 | 72.49 | 9.87 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 61 | 72.77 | 72.76 | 9.40 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 60 | 72.72 | 72.72 | 9.45 | 120K / 120K | 0.0% | -| Packet | 60 / 60 / 61 | 72.47 | 72.43 | 9.52 | 120.2K / 120.2K | 0.0% | -| Satset | 60 / 60 / 60 | 118.13 | 118.13 | 8.88 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 61 | 174809.52 | 174809.52 | 9.87 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 59 / 60 | 15613.31 | 15613.31 | 22.55 | 119.8K / 119.8K | 0.0% | -| ByteNet | 60 / 60 / 61 | 72.59 | 72.56 | 10.32 | 120K / 120K | 0.0% | -| Warp | 60 / 54 / 61 | 6.71 | 6.71 | 5.15 | 107.8K / 107.8K | 0.0% | -| NetRay | 60 / 52 / 61 | 71.83 | 71.83 | 9.88 | 108.6K / 108.6K | 0.0% | -| Zap | 60 / 60 / 60 | 72.78 | 72.78 | 9.53 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 61 | 72.62 | 72.62 | 9.50 | 120.2K / 120.2K | 0.0% | -| Packet | 60 / 60 / 60 | 72.85 | 72.85 | 10.08 | 120K / 120K | 0.0% | -| Satset | 60 / 60 / 61 | 38.84 | 38.84 | 8.22 | 120K / 120K | 0.0% | - -Satset wins this row in latency mode. Default mode still pays for three reliable commits per frame. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 600 | 59 | 39.02 | 7.82 | 120K / 120K | 0.0% | +| QuickNet | 600 | 60 | 38.97 | 8.80 | 120K / 120K | 0.0% | +| Warp | 564 | 54 | 2.81 | 4.94 | 112.8K / 112.8K | 0.0% | +| ByteNet | 600 | 60 | 72.51 | 9.32 | 120K / 120K | 0.0% | +| NetRay | 600 | 60 | 72.58 | 9.33 | 120K / 120K | 0.0% | +| Zap | 597 | 57 | 72.83 | 9.37 | 119.4K / 119.4K | 0.0% | +| Blink | 600 | 60 | 72.63 | 9.35 | 120K / 120K | 0.0% | +| Packet | 601 | 60 | 72.64 | 9.27 | 120.2K / 120.2K | 0.0% | +| BridgeNet2 | 576 | 56 | 15,633.83 | 22.15 | 115.2K / 115.2K | 0.0% | +| Roblox | 600 | 60 | 84,985.70 | 9.92 | 120K / 120K | 0.0% | + +Satset and QuickNet are effectively tied on bandwidth here. Warp is much lower, but its row is partial. ## Booleans -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 48 / 43 / 51 | 52079.03 | 63487.25 | 10.86 | 93.6K / 93.6K | 0.0% | -| BridgeNet2 | 54 / 52 / 56 | 21597.02 | 24020.96 | 23.38 | 92.8K / 92.8K | 0.0% | -| ByteNet | 60 / 60 / 60 | 19.04 | 19.04 | 6.75 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 60 | 2.53 | 2.53 | 3.75 | 120K / 120K | 0.0% | -| NetRay | 60 / 60 / 60 | 10.27 | 10.27 | 5.73 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 60 | 29.35 | 29.35 | 7.80 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 61 | 29.38 | 29.38 | 7.48 | 120K / 120K | 0.0% | -| Packet | 57 / 48 / 61 | 25.30 | 26.89 | 6.58 | 93.2K / 93.2K | 0.0% | -| Satset | 60 / 60 / 61 | 10.43 | 10.43 | 5.47 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 47 / 46 / 48 | 54850.50 | 71744.48 | 10.88 | 93.2K / 93.2K | 0.0% | -| BridgeNet2 | 52 / 50 / 52 | 20440.36 | 23969.86 | 23.73 | 102.2K / 102.2K | 0.0% | -| ByteNet | 60 / 60 / 61 | 19.18 | 19.18 | 6.57 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 60 | 2.51 | 2.51 | 3.83 | 120K / 120K | 0.0% | -| NetRay | 60 / 60 / 60 | 10.41 | 10.41 | 5.52 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 60 | 29.42 | 29.42 | 7.57 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 61 | 29.40 | 29.40 | 7.48 | 120.2K / 120.2K | 0.0% | -| Packet | 58 / 57 / 60 | 26.10 | 27.07 | 7.36 | 115.8K / 115.8K | 0.0% | -| Satset | 60 / 60 / 61 | 10.39 | 10.38 | 5.73 | 120.2K / 120.2K | 0.0% | - -Warp is the bandwidth leader. Satset and NetRay sit close together and both stay at full frame rate. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 601 | 60 | 10.34 | 5.22 | 120.2K / 120.2K | 0.0% | +| QuickNet | 600 | 60 | 10.25 | 5.35 | 120K / 120K | 0.0% | +| Warp | 600 | 60 | 2.52 | 3.73 | 120K / 120K | 0.0% | +| ByteNet | 600 | 60 | 18.98 | 6.27 | 120K / 120K | 0.0% | +| NetRay | 600 | 60 | 10.33 | 5.27 | 120K / 120K | 0.0% | +| Zap | 591 | 58 | 29.25 | 7.25 | 118.2K / 118.2K | 0.0% | +| Blink | 600 | 60 | 29.36 | 7.30 | 120K / 120K | 0.0% | +| Packet | 600 | 60 | 23.63 | 6.73 | 120K / 120K | 0.0% | +| BridgeNet2 | 581 | 57 | 23,921.60 | 23.14 | 116.2K / 116.2K | 0.0% | +| Roblox | 533 | 53 | 59,674.46 | 10.34 | 106.6K / 106.6K | 0.0% | + +QuickNet is slightly lower than Satset. Satset is in the same range as NetRay. ## Mixed -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 60 | 3645.96 | 3645.96 | 9.32 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 60 / 60 | 1674.85 | 1674.85 | 17.47 | 120K / 120K | 0.0% | -| ByteNet | 61 / 60 / 61 | 4.86 | 4.86 | 4.73 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 60 | 2.37 | 2.37 | 3.80 | 120K / 120K | 0.0% | -| NetRay | 60 / 56 / 61 | 4.97 | 4.99 | 4.45 | 104.6K / 104.6K | 0.0% | -| Zap | 60 / 60 / 60 | 5.06 | 5.06 | 4.53 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 60 | 5.02 | 5.02 | 4.38 | 120K / 120K | 0.0% | -| Packet | 60 / 60 / 60 | 4.79 | 4.79 | 4.38 | 120.2K / 120.2K | 0.0% | -| Satset | 60 / 60 / 61 | 4.28 | 4.29 | 4.11 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 60 | 3558.99 | 3558.99 | 9.38 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 60 / 61 | 1680.33 | 1680.33 | 16.98 | 120K / 120K | 0.0% | -| ByteNet | 60 / 60 / 61 | 4.86 | 4.86 | 4.65 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 60 | 2.29 | 2.29 | 3.61 | 120K / 120K | 0.0% | -| NetRay | 60 / 60 / 61 | 4.99 | 4.99 | 4.38 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 60 | 4.97 | 4.97 | 4.58 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 60 | 5.01 | 5.01 | 4.72 | 120.2K / 120.2K | 0.0% | -| Packet | 60 / 60 / 60 | 4.70 | 4.70 | 4.37 | 120K / 120K | 0.0% | -| Satset | 60 / 60 / 60 | 4.31 | 4.31 | 4.22 | 120K / 120K | 0.0% | - -Satset is not the lowest bandwidth row, but it is close to Packet, ByteNet, NetRay, Zap, and Blink while staying at full frame rate. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 600 | 60 | 4.34 | 4.23 | 120K / 120K | 0.0% | +| QuickNet | 600 | 60 | 4.18 | 4.08 | 120K / 120K | 0.0% | +| Warp | 600 | 60 | 2.40 | 3.52 | 120K / 120K | 0.0% | +| ByteNet | 598 | 58 | 4.97 | 4.25 | 119.6K / 119.6K | 0.0% | +| NetRay | 515 | 53 | 4.92 | 4.23 | 103K / 103K | 0.0% | +| Zap | 600 | 60 | 4.94 | 4.22 | 120K / 120K | 0.0% | +| Blink | 597 | 58 | 5.02 | 4.22 | 119.4K / 119.4K | 0.0% | +| Packet | 601 | 60 | 4.84 | 4.27 | 120.2K / 120.2K | 0.0% | +| BridgeNet2 | 600 | 60 | 1,680.62 | 16.40 | 120K / 120K | 0.0% | +| Roblox | 600 | 60 | 3,019.90 | 9.33 | 120K / 120K | 0.0% | + +QuickNet is the lowest full-volume row among the typed libraries here. Warp is still lower overall. ## Entities -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 19 / 18 / 20 | 200387.59 | 658854.21 | 14.23 | 36K / 36K | 0.0% | -| BridgeNet2 | 17 / 16 / 20 | 21929.40 | 81590.27 | 27.51 | 26.8K / 26.8K | 0.0% | -| ByteNet | 60 / 60 / 61 | 39.03 | 38.88 | 8.28 | 119.8K / 119.8K | 0.0% | -| Warp | 53 / 50 / 55 | 11.20 | 12.73 | 5.86 | 104.8K / 104.8K | 0.0% | -| NetRay | 60 / 59 / 61 | 38.92 | 38.85 | 8.33 | 119.8K / 119.8K | 0.0% | -| Zap | 60 / 60 / 61 | 38.92 | 38.87 | 8.28 | 119.8K / 119.8K | 0.0% | -| Blink | 60 / 49 / 60 | 36.03 | 36.03 | 8.45 | 80.8K / 80.8K | 0.0% | -| Packet | 50 / 49 / 52 | 31.26 | 38.21 | 8.38 | 99.4K / 99.4K | 0.0% | -| Satset | 60 / 60 / 60 | 117.53 | 117.53 | 9.24 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 18 / 17 / 19 | 197299.86 | 690549.54 | 14.27 | 34.2K / 34.2K | 0.0% | -| BridgeNet2 | 18 / 17 / 19 | 28973.95 | 98591.93 | 27.85 | 30.2K / 30.2K | 0.0% | -| ByteNet | 60 / 60 / 61 | 39.04 | 39.04 | 8.35 | 119.8K / 119.8K | 0.0% | -| Warp | 52 / 48 / 53 | 9.99 | 12.04 | 7.01 | 100.2K / 100.2K | 0.0% | -| NetRay | 60 / 60 / 60 | 38.97 | 38.97 | 8.32 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 60 | 38.97 | 38.97 | 8.40 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 61 | 38.98 | 38.98 | 8.26 | 120.2K / 120.2K | 0.0% | -| Packet | 52 / 50 / 52 | 30.12 | 35.43 | 8.34 | 102K / 102K | 0.0% | -| Satset | 60 / 60 / 60 | 39.15 | 39.15 | 8.32 | 120.2K / 120.2K | 0.0% | - -Default mode is the weak Satset row here. Latency mode brings Satset close to NetRay, Zap, Blink, and ByteNet. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 599 | 59 | 38.96 | 7.77 | 119.8K / 119.8K | 0.0% | +| QuickNet | 552 | 54 | 38.56 | 7.77 | 110.4K / 110.4K | 0.0% | +| Warp | 570 | 48 | 2.64 | 4.23 | 114K / 114K | 0.0% | +| ByteNet | 600 | 60 | 38.89 | 8.05 | 120K / 120K | 0.0% | +| NetRay | 600 | 60 | 38.94 | 7.87 | 120K / 120K | 0.0% | +| Zap | 600 | 60 | 38.91 | 7.78 | 120K / 120K | 0.0% | +| Blink | 594 | 58 | 38.99 | 7.87 | 118.8K / 118.8K | 0.0% | +| Packet | 531 | 48 | 38.81 | 7.74 | 106.2K / 106.2K | 0.0% | +| BridgeNet2 | 187 | 18 | 100,015.96 | 26.13 | 37.4K / 37.4K | 0.0% | +| Roblox | 179 | 17 | 487,420.60 | 13.75 | 35.8K / 35.8K | 0.0% | + +ByteNet, NetRay, and Zap have the cleanest full-volume rows here. Satset is near full-volume. QuickNet is partial. -## Strings +## SingleValue -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 61 | 158676.12 | 158214.25 | 11.42 | 119.8K / 119.8K | 0.0% | -| BridgeNet2 | 60 / 59 / 61 | 27369.92 | 27383.28 | 24.10 | 120K / 120K | 0.0% | -| ByteNet | 0 / 0 / 0 | 0.00 | 0.00 | 4.55 | 1.6K / 1.6K | 0.0% | -| Warp | 60 / 57 / 61 | 3.34 | 3.35 | 4.32 | 117.4K / 117.4K | 0.0% | -| NetRay | 60 / 57 / 60 | 96.02 | 96.02 | 10.35 | 91.6K / 91.6K | 0.0% | -| Zap | 60 / 60 / 60 | 101.23 | 101.23 | 10.35 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 61 | 99.90 | 99.86 | 10.35 | 119.8K / 119.8K | 0.0% | -| Packet | 60 / 58 / 60 | 95.74 | 95.76 | 10.35 | 119.8K / 119.8K | 0.0% | -| Satset | 60 / 60 / 60 | 899.63 | 899.63 | 10.30 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 61 | 62755.32 | 62755.32 | 13.05 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 60 / 60 | 27457.38 | 27457.39 | 25.23 | 120K / 120K | 0.0% | -| ByteNet | 0 / 0 / 0 | 0.00 | 0.00 | 4.54 | 1.6K / 1.6K | 0.0% | -| Warp | 60 / 60 / 60 | 4.44 | 4.44 | 4.32 | 120K / 120K | 0.0% | -| NetRay | 60 / 60 / 61 | 96.40 | 96.31 | 11.95 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 61 | 100.43 | 100.30 | 10.32 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 60 | 100.05 | 100.05 | 12.30 | 120.2K / 120.2K | 0.0% | -| Packet | 60 / 60 / 61 | 95.99 | 95.99 | 10.43 | 120K / 120K | 0.0% | -| Satset | 60 / 60 / 60 | 96.37 | 96.37 | 10.33 | 120K / 120K | 0.0% | - -Strings expose the default segmentation cost most clearly. Satset falls from 899.63 to 96.37 normalized when the run uses one reliable commit per frame. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 601 | 60 | 2.46 | 3.43 | 120.2K / 120.2K | 0.0% | +| QuickNet | 600 | 60 | 2.39 | 3.75 | 120K / 120K | 0.0% | +| Warp | 600 | 60 | 2.29 | 3.70 | 120K / 120K | 0.0% | +| ByteNet | 600 | 60 | 2.41 | 3.43 | 120K / 120K | 0.0% | +| NetRay | 600 | 60 | 2.41 | 3.82 | 120K / 120K | 0.0% | +| Zap | 600 | 60 | 2.34 | 3.72 | 120K / 120K | 0.0% | +| Blink | 600 | 60 | 2.36 | 3.70 | 120K / 120K | 0.0% | +| Packet | 598 | 58 | 2.10 | 4.19 | 119.6K / 119.6K | 0.0% | +| BridgeNet2 | 600 | 60 | 145.18 | 10.40 | 120K / 120K | 0.0% | +| Roblox | 600 | 60 | 227.18 | 9.13 | 120K / 120K | 0.0% | + +This row is measurement-noise territory for compact serializers. -## SingleValue +## Strings -### Default Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 55 / 60 | 231.53 | 231.96 | 9.27 | 118.6K / 118.6K | 0.0% | -| BridgeNet2 | 60 / 60 / 60 | 145.09 | 145.09 | 11.35 | 120K / 120K | 0.0% | -| ByteNet | 60 / 60 / 60 | 2.31 | 2.31 | 3.72 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 61 | 1.80 | 1.80 | 3.78 | 120K / 120K | 0.0% | -| NetRay | 60 / 58 / 60 | 2.39 | 2.39 | 3.75 | 119.6K / 119.6K | 0.0% | -| Zap | 60 / 54 / 61 | 2.39 | 2.38 | 3.80 | 118.4K / 118.4K | 0.0% | -| Blink | 61 / 60 / 61 | 2.33 | 2.33 | 3.70 | 120K / 120K | 0.0% | -| Packet | 60 / 60 / 60 | 2.29 | 2.29 | 3.73 | 120.2K / 120.2K | 0.0% | -| Satset | 60 / 60 / 60 | 2.39 | 2.39 | 3.65 | 120.2K / 120.2K | 0.0% | - -### Latency Mode - -| Library | FPS p50 / min / p95 | Bandwidth | Normalized | Drain | Sent / Received | Loss | -| :--- | :--- | ---: | ---: | ---: | :--- | ---: | -| Roblox | 60 / 60 / 61 | 233.73 | 233.73 | 10.32 | 120K / 120K | 0.0% | -| BridgeNet2 | 60 / 60 / 60 | 144.82 | 144.82 | 11.43 | 120K / 120K | 0.0% | -| ByteNet | 60 / 60 / 60 | 2.36 | 2.36 | 3.75 | 120K / 120K | 0.0% | -| Warp | 60 / 60 / 61 | 2.24 | 2.24 | 3.80 | 120K / 120K | 0.0% | -| NetRay | 60 / 60 / 60 | 2.38 | 2.38 | 3.73 | 120K / 120K | 0.0% | -| Zap | 60 / 60 / 60 | 2.38 | 2.38 | 3.73 | 120K / 120K | 0.0% | -| Blink | 60 / 60 / 60 | 2.39 | 2.39 | 3.68 | 120.2K / 120.2K | 0.0% | -| Packet | 60 / 60 / 60 | 2.31 | 2.31 | 3.75 | 120K / 120K | 0.0% | -| Satset | 60 / 60 / 61 | 2.38 | 2.38 | 3.70 | 120.2K / 120.2K | 0.0% | - -SingleValue is measurement-noise territory for the compact libraries. Warp, Packet, ByteNet, NetRay, Zap, Blink, and Satset are all close. +| Library | Frames | Min FPS | Normalized | Drain | Sent / Received | Loss | +| :--- | ---: | ---: | ---: | ---: | :--- | ---: | +| Satset | 601 | 60 | 96.43 | 9.75 | 120.2K / 120.2K | 0.0% | +| QuickNet | 600 | 60 | 96.38 | 9.82 | 120K / 120K | 0.0% | +| Warp | 600 | 60 | 3.45 | 3.77 | 120K / 120K | 0.0% | +| ByteNet | 7 | 0 | 0.00 | 3.01 | 1.4K / 1.4K | 0.0% | +| NetRay | 600 | 60 | 96.34 | 9.90 | 120K / 120K | 0.0% | +| Zap | 600 | 60 | 100.29 | 11.88 | 120K / 120K | 0.0% | +| Blink | 600 | 60 | 100.36 | 9.97 | 120K / 120K | 0.0% | +| Packet | 601 | 60 | 95.84 | 9.45 | 120.2K / 120.2K | 0.0% | +| BridgeNet2 | 600 | 60 | 27,188.84 | 39.92 | 120K / 120K | 0.0% | +| Roblox | 600 | 60 | 80,407.66 | 10.87 | 120K / 120K | 0.0% | + +Satset, QuickNet, NetRay, and Packet are close here. ByteNet's `0.00` row is incomplete and should not be read as free bandwidth. --- @@ -262,18 +156,15 @@ SingleValue is measurement-noise territory for the compact libraries. Warp, Pack - Environment: local Roblox Studio, 1 player. - Test load: 200 events per frame for 10 seconds per library per payload. - Payload source: `benchmark/src/shared/benches`. -- Satset profile source: `benchmark/src/shared/BenchmarkConfig.luau`. -- Default profile: `reliableThreshold = 60000`, `maxPacketsPerFrame = 20`. -- Latency profile: `reliableThreshold = 0`, `maxPacketsPerFrame = 0`. -- These profiles are benchmark controls. They do not define public Satset modes. -- Validation: the server verifies every received packet. +- Satset config source: `benchmark/src/shared/BenchmarkConfig.luau`. +- Satset benchmark control: `reliableThreshold = 0`, `maxPacketsPerFrame = 0`. +- Validation: the server verifies the first received payload for each library and counts sent/received volume. -The benchmark does not prove a single universal winner. It shows how each library behaves under one heavy local Studio workload. Use the packet counts and min FPS before comparing bandwidth. +The benchmark does not prove a single universal winner. It shows how each library behaves under one heavy local Studio workload. Use frame counts, min FPS, and packet counts before comparing bandwidth. ## Raw Data -- [default-mode-result.json](./default-mode-result.json) -- [latency-mode-result.json](./latency-mode-result.json) +- [benchmark-result.json](./benchmark-result.json) ## Running In Roblox Studio @@ -281,6 +172,6 @@ The benchmark place file is [satset-benchmark.rbxl](./satset-benchmark.rbxl). 1. Open `benchmark/satset-benchmark.rbxl` in Roblox Studio. 2. If you are testing local source changes, connect Rojo to this repo before pressing Play. -3. Set `activeMode` in `benchmark/src/shared/BenchmarkConfig.luau` to `"default"` or `"latency"`. -4. Press Play with one local player and wait until Studio Output prints `Generated results`. -5. The server creates `game.Result`, a `StringValue` whose `Value` contains the JSON for the run. Use that value for the result file that matches the selected mode. +3. Press Play with one local player and wait until Studio Output prints `Generated results`. +4. The server creates `game.Result`, a `StringValue` whose `Value` contains the JSON for the run. +5. Put that JSON in `benchmark/benchmark-result.json`. diff --git a/benchmark/benchmark-result.json b/benchmark/benchmark-result.json new file mode 100644 index 0000000..eb49765 --- /dev/null +++ b/benchmark/benchmark-result.json @@ -0,0 +1,2186 @@ +{ + "Vectors": { + "warp": { + "Framerate": [ + 60, + 54, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 2.795123338699341, + 2.1197614669799806, + 3.6373419761657717, + 4.114903926849365, + 4.114903926849365, + 4.114903926849365 + ], + "DrainDuration": 4.939354101999925, + "Recieve": 112800, + "Sent": 112800, + "Frames": 564, + "NormalizedBandwidth": [ + 2.8061359603857296, + 2.119761577534156, + 4.058330842473024, + 4.132049569632617, + 4.132049569632617, + 4.132049569632617 + ] + }, + "bridgenet2": { + "Framerate": [ + 60, + 56, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 15633.830078125, + 11280.8828125, + 15722.05859375, + 15730.8095703125, + 15730.8095703125, + 15730.8095703125 + ], + "DrainDuration": 22.1529455660002, + "Recieve": 115200, + "Sent": 115200, + "Frames": 576, + "NormalizedBandwidth": [ + 15633.830893492777, + 11280.883400843886, + 15722.059413719253, + 15730.810390738152, + 15730.810390738152, + 15730.810390738152 + ] + }, + "packet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 72.64115142822266, + 55.15867233276367, + 72.71024322509766, + 72.74811553955078, + 72.80789947509766, + 72.80789947509766 + ], + "DrainDuration": 9.266659813999923, + "Recieve": 120200, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 72.64115521675393, + 55.15867520951261, + 72.71024701723235, + 72.74811933366067, + 72.80790327232552, + 72.80790327232552 + ] + }, + "bytenet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 72.50541687011719, + 50.04075622558594, + 72.63225555419922, + 72.88240051269531, + 72.88240051269531, + 72.88240051269531 + ], + "DrainDuration": 9.317384534999747, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 72.50542065156935, + 50.04075883541475, + 72.7114399665677, + 72.81098939238808, + 72.81098939238808, + 72.81098939238808 + ] + }, + "roblox": { + "Framerate": [ + 60, + 60, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 84985.6953125, + 54201.9375, + 103543.6484375, + 138999.15625, + 138999.15625, + 138999.15625 + ], + "DrainDuration": 9.916805902000306, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 84985.69974484941, + 54201.94032685133, + 103543.65383772209, + 138999.16349937093, + 138999.16349937093, + 138999.16349937093 + ] + }, + "satset": { + "DrainDuration": 7.816942086999916, + "DebugStats": { + "reliableCommitBytes": 72601200, + "commitGcKb": 118, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 600, + "reliableCommits": 600, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 1, + "streamGrowthBytes": 131072, + "exactBufferPoolSizeClasses": 1, + "exactBufferPoolHits": 599, + "adapterGcSamples": 120000, + "sendGcSamples": 240001, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 600, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 1, + "exactBufferPoolBytes": 121002, + "adapterGcKb": -1922, + "sendGcKb": 129, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 39.01645100947576, + 29.32838974370597, + 39.08814330622268, + 39.11245550056677, + 39.12745870569495, + 39.12745870569495 + ], + "Framerate": [ + 60, + 59, + 60, + 60, + 61, + 61 + ], + "Bandwidth": [ + 38.99591064453125, + 29.328388214111329, + 39.05757141113281, + 39.11245346069336, + 39.12745666503906, + 39.12745666503906 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -4238, + "listenerCallGcSamples": 120000, + "packetDecodeGcSamples": 120000, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120600, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": 202416, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 1 + }, + "Recieve": 120000 + }, + "zap": { + "Framerate": [ + 60, + 57, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 72.82897186279297, + 53.49580764770508, + 72.90431213378906, + 72.99083709716797, + 72.99083709716797, + 72.99083709716797 + ], + "DrainDuration": 9.366167209000196, + "Recieve": 119400, + "Sent": 119400, + "Frames": 597, + "NormalizedBandwidth": [ + 72.82897566111984, + 53.49581043772886, + 72.99084090393677, + 75.75096898770812, + 75.75096898770812, + 75.75096898770812 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 72.57927703857422, + 53.587520599365237, + 72.74488067626953, + 72.81295776367188, + 72.82084655761719, + 72.82084655761719 + ], + "DrainDuration": 9.333106287000192, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 72.57928082387849, + 53.58752339417222, + 72.7448844702107, + 72.81296156116355, + 72.82085035552029, + 72.82085035552029 + ] + }, + "blink": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 72.62796020507813, + 53.81346130371094, + 72.70398712158203, + 72.70944213867188, + 72.8438720703125, + 72.8438720703125 + ], + "DrainDuration": 9.350005999000132, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 72.62796399292142, + 53.81346411030165, + 72.70399091339044, + 72.70944593076479, + 72.84387586941648, + 72.84387586941648 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 38.97089767456055, + 29.025203704833986, + 38.99586868286133, + 39.01387023925781, + 39.06427001953125, + 39.06427001953125 + ], + "DrainDuration": 8.800044874999913, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 38.970899707051248, + 29.02520521861632, + 38.995870716654369, + 39.013872273989708, + 39.064272056891699, + 39.064272056891699 + ] + } + }, + "Booleans": { + "warp": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.5221173763275148, + 2.368652582168579, + 2.7293598651885988, + 2.742267608642578, + 4.425382137298584, + 4.425382137298584 + ], + "DrainDuration": 3.73334475799993, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.522117507866186, + 2.368652705703438, + 2.729360007535808, + 2.742267751662979, + 4.425382368100248, + 4.425382368100248 + ] + }, + "bridgenet2": { + "Framerate": [ + 59, + 57, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 23483.62109375, + 17632.859375, + 23723.904296875, + 23853.603515625, + 23853.603515625, + 23853.603515625 + ], + "DrainDuration": 23.136419982999997, + "Recieve": 116200, + "Sent": 116200, + "Frames": 581, + "NormalizedBandwidth": [ + 23921.604724863195, + 18792.91683245423, + 24179.78737920204, + 24180.170360287975, + 24180.170360287975, + 24180.170360287975 + ] + }, + "packet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 23.585262298583986, + 17.192241668701173, + 23.95997428894043, + 24.088584899902345, + 24.088584899902345, + 24.088584899902345 + ], + "DrainDuration": 6.731871806000072, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 23.627085793863999, + 17.335511397494707, + 23.959975717066187, + 24.088586470299349, + 24.088586470299349, + 24.088586470299349 + ] + }, + "bytenet": { + "Framerate": [ + 60, + 60, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 18.982406616210939, + 14.272871017456055, + 19.024717330932618, + 19.0316219329834, + 19.0316219329834, + 19.0316219329834 + ], + "DrainDuration": 6.267633172999922, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 18.98240760622059, + 14.272871761844286, + 19.024718323148947, + 19.03162292555983, + 19.03162292555983, + 19.03162292555983 + ] + }, + "roblox": { + "Framerate": [ + 54, + 53, + 54, + 55, + 55, + 55 + ], + "Bandwidth": [ + 52951.83203125, + 42563.93359375, + 53619.45703125, + 54912.875, + 54912.875, + 54912.875 + ], + "DrainDuration": 10.33922282399999, + "Recieve": 106600, + "Sent": 106600, + "Frames": 533, + "NormalizedBandwidth": [ + 59674.45842593734, + 48587.1337841858, + 60321.8916681039, + 62165.521299562875, + 62165.521299562875, + 62165.521299562875 + ] + }, + "satset": { + "DrainDuration": 5.217620056000214, + "DebugStats": { + "reliableCommitBytes": 15627202, + "commitGcKb": 25, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 601, + "reliableCommits": 601, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "exactBufferPoolSizeClasses": 2, + "exactBufferPoolHits": 600, + "adapterGcSamples": 120200, + "sendGcSamples": 240400, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 601, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 1, + "exactBufferPoolBytes": 147004, + "adapterGcKb": 9391, + "sendGcKb": 1, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 10.341739240230404, + 7.609570900104892, + 10.370192114944317, + 10.385531967123747, + 10.388734405645259, + 10.388734405645259 + ], + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 10.3417387008667, + 7.609570503234863, + 10.37019157409668, + 10.385531425476075, + 10.388733863830567, + 10.388733863830567 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -1098686, + "listenerCallGcSamples": 120200, + "packetDecodeGcSamples": 120200, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120801, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": 1085444, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 0 + }, + "Recieve": 120200 + }, + "zap": { + "Framerate": [ + 60, + 58, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 29.29340171813965, + 22.247533798217775, + 29.353622436523439, + 29.4331111907959, + 29.4331111907959, + 29.4331111907959 + ], + "DrainDuration": 7.249783056000069, + "Recieve": 118200, + "Sent": 118200, + "Frames": 591, + "NormalizedBandwidth": [ + 29.25287780739467, + 22.24753495851708, + 29.353623967434147, + 29.43311272585227, + 29.43311272585227, + 29.43311272585227 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 10.330069541931153, + 7.806988716125488, + 10.423501014709473, + 10.453253746032715, + 10.481480598449707, + 10.481480598449707 + ], + "DrainDuration": 5.266017387999909, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 10.330070080686263, + 7.806989123291679, + 10.423501558337414, + 10.453254291212382, + 10.481481145101519, + 10.481481145101519 + ] + }, + "blink": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 29.3564510345459, + 22.068872451782228, + 29.416034698486329, + 29.475997924804689, + 29.538347244262697, + 29.538347244262697 + ], + "DrainDuration": 7.3002381010001049, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 29.35645256560413, + 22.068873602763618, + 29.41603623265209, + 29.475999462097776, + 29.538348784807554, + 29.538348784807554 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 10.251404762268067, + 7.644955158233643, + 10.285540580749512, + 10.343138694763184, + 10.350224494934082, + 10.350224494934082 + ], + "DrainDuration": 5.349255260000064, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 10.251405296920489, + 7.6449555569491249, + 10.285541117182256, + 10.343139234199903, + 10.350225034740355, + 10.350225034740355 + ] + } + }, + "Mixed": { + "warp": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 2.3952059745788576, + 1.8949764966964722, + 2.4854116439819338, + 2.4946699142456056, + 2.4946699142456056, + 2.4946699142456056 + ], + "DrainDuration": 3.5164384939998856, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.3952060994985837, + 1.894976595527198, + 2.475225660918384, + 2.4946700443527805, + 2.4946700443527805, + 2.4946700443527805 + ] + }, + "bridgenet2": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 1680.6226806640626, + 1335.4205322265626, + 1682.36572265625, + 1684.0098876953126, + 1684.0745849609376, + 1684.0745849609376 + ], + "DrainDuration": 16.39816557999984, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 1680.6227683153657, + 1335.4206018741707, + 1682.3658103984599, + 1684.0099755232723, + 1684.0746727922715, + 1684.0746727922715 + ] + }, + "packet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 4.826046466827393, + 3.839698553085327, + 4.86691427230835, + 4.877917289733887, + 4.877917289733887, + 4.877917289733887 + ], + "DrainDuration": 4.2670023149999, + "Recieve": 120200, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 4.836130584914796, + 3.839698753341212, + 4.869125389413176, + 4.877917544137098, + 4.877917544137098, + 4.877917544137098 + ] + }, + "bytenet": { + "Framerate": [ + 60, + 58, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 4.965731143951416, + 3.7711398601531984, + 5.00945520401001, + 5.052359104156494, + 5.070005893707275, + 5.070005893707275 + ], + "DrainDuration": 4.249917537999863, + "Recieve": 119600, + "Sent": 119600, + "Frames": 598, + "NormalizedBandwidth": [ + 4.965731402934477, + 3.9011793764045836, + 5.009455465273458, + 5.052359367657555, + 5.070006158128688, + 5.070006158128688 + ] + }, + "roblox": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 3019.898193359375, + 2986.68310546875, + 3056.64501953125, + 3117.58544921875, + 3235.4482421875, + 3235.4482421875 + ], + "DrainDuration": 9.332867358000386, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 3019.898350859339, + 2986.6832612364125, + 3056.6451789477107, + 3117.5856118135018, + 3235.4484109292754, + 3235.4484109292754 + ] + }, + "satset": { + "DrainDuration": 4.232817628000248, + "DebugStats": { + "reliableCommitBytes": 3841200, + "commitGcKb": 6, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 600, + "reliableCommits": 600, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "exactBufferPoolSizeClasses": 3, + "exactBufferPoolHits": 599, + "adapterGcSamples": 120000, + "sendGcSamples": 240000, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 600, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 1, + "exactBufferPoolBytes": 153406, + "adapterGcKb": 0, + "sendGcKb": 1, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 4.341675031123486, + 3.3954738957309429, + 4.397094955888861, + 4.414083234210171, + 4.414083234210171, + 4.414083234210171 + ], + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 4.3416748046875, + 3.3954737186431886, + 4.3970947265625, + 4.414083003997803, + 4.414083003997803, + 4.414083003997803 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -1815, + "listenerCallGcSamples": 120000, + "packetDecodeGcSamples": 120000, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120600, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": 32921, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 0 + }, + "Recieve": 120000 + }, + "zap": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 4.941019058227539, + 3.867702007293701, + 4.970263481140137, + 4.99273681640625, + 5.028336524963379, + 5.028336524963379 + ], + "DrainDuration": 4.21691076199977, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 4.941019315921764, + 3.86770220901008, + 4.970263740359577, + 4.992737076797766, + 5.028336787211565, + 5.028336787211565 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 53, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 4.923576831817627, + 3.547711133956909, + 5.275604724884033, + 5.326401233673096, + 5.326401233673096, + 5.326401233673096 + ], + "DrainDuration": 4.231533036000201, + "Recieve": 103000, + "Sent": 103000, + "Frames": 515, + "NormalizedBandwidth": [ + 4.923577088602169, + 3.962882519319976, + 5.275605000028261, + 5.3264015114665679, + 5.3264015114665679, + 5.3264015114665679 + ] + }, + "blink": { + "Framerate": [ + 60, + 58, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 4.990184783935547, + 3.9084055423736574, + 5.037812232971191, + 5.047177791595459, + 5.047177791595459, + 5.047177791595459 + ], + "DrainDuration": 4.216966139000306, + "Recieve": 119400, + "Sent": 119400, + "Frames": 597, + "NormalizedBandwidth": [ + 5.01952831862577, + 3.9084057462128909, + 5.026492901175637, + 5.037812495713574, + 5.037812495713574, + 5.037812495713574 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 4.178702354431152, + 3.3327412605285646, + 4.336594581604004, + 4.363077163696289, + 4.381412029266357, + 4.381412029266357 + ], + "DrainDuration": 4.0829869429999239, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 4.178702572367463, + 3.332741434344566, + 4.336594807775036, + 4.3630773912484959, + 4.381412257774802, + 4.381412257774802 + ] + } + }, + "Entities": { + "warp": { + "Framerate": [ + 60, + 48, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.642598867416382, + 2.339517116546631, + 5.124763488769531, + 5.360812664031982, + 5.360812664031982, + 5.360812664031982 + ], + "DrainDuration": 4.232482034999975, + "Recieve": 114000, + "Sent": 114000, + "Frames": 570, + "NormalizedBandwidth": [ + 2.6425990052386529, + 2.3989964881740288, + 5.545668572695285, + 6.432646181903561, + 6.432646181903561, + 6.432646181903561 + ] + }, + "bridgenet2": { + "Framerate": [ + 20, + 18, + 21, + 21, + 21, + 21 + ], + "Bandwidth": [ + 31321.0234375, + 16699.271484375, + 33063.125, + 34682.3515625, + 34682.3515625, + 34682.3515625 + ], + "DrainDuration": 26.12603970100008, + "Recieve": 37400, + "Sent": 37400, + "Frames": 187, + "NormalizedBandwidth": [ + 100015.95861837034, + 48507.410530431356, + 102438.30999190055, + 102808.40569773017, + 102808.40569773017, + 102808.40569773017 + ] + }, + "packet": { + "Framerate": [ + 54, + 48, + 56, + 56, + 56, + 56 + ], + "Bandwidth": [ + 34.13130569458008, + 24.773115158081056, + 36.219722747802737, + 36.26628875732422, + 36.26628875732422, + 36.26628875732422 + ], + "DrainDuration": 7.7387636429998569, + "Recieve": 106200, + "Sent": 106200, + "Frames": 531, + "NormalizedBandwidth": [ + 38.80684753601841, + 27.755065370438314, + 39.54637022131169, + 39.65759281404712, + 39.65759281404712, + 39.65759281404712 + ] + }, + "bytenet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 38.88546371459961, + 28.805343627929689, + 38.90737533569336, + 38.9367790222168, + 38.95856475830078, + 38.95856475830078 + ], + "DrainDuration": 8.049676222000017, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 38.88546574263458, + 28.805345130245429, + 38.90737736487111, + 38.93678105292807, + 38.95856679014827, + 38.95856679014827 + ] + }, + "roblox": { + "Framerate": [ + 19, + 17, + 19, + 20, + 20, + 20 + ], + "Bandwidth": [ + 151953.0625, + 86996.3515625, + 155034.625, + 159276.9375, + 159276.9375, + 159276.9375 + ], + "DrainDuration": 13.747457960000247, + "Recieve": 35800, + "Sent": 35800, + "Frames": 179, + "NormalizedBandwidth": [ + 487420.6000677301, + 298445.83610686365, + 547477.9790702512, + 569180.8496718319, + 569180.8496718319, + 569180.8496718319 + ] + }, + "satset": { + "DrainDuration": 7.765782782000315, + "DebugStats": { + "reliableCommitBytes": 72480198, + "commitGcKb": 0, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 599, + "reliableCommits": 599, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "exactBufferPoolSizeClasses": 3, + "exactBufferPoolHits": 599, + "adapterGcSamples": 119800, + "sendGcSamples": 239600, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 599, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolBytes": 153406, + "adapterGcKb": 9366, + "sendGcKb": 1, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 119800, + "Frames": 599, + "NormalizedBandwidth": [ + 38.95809650589702, + 30.072644848439866, + 39.14834035961604, + 39.23565568109752, + 39.23565568109752, + 39.23565568109752 + ], + "Framerate": [ + 60, + 59, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 38.89755630493164, + 30.072643280029298, + 39.11841583251953, + 39.148338317871097, + 39.148338317871097, + 39.148338317871097 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -3322, + "listenerCallGcSamples": 119800, + "packetDecodeGcSamples": 119800, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120399, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": -49204, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 0 + }, + "Recieve": 119800 + }, + "zap": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 38.90581512451172, + 29.449384689331056, + 39.00778579711914, + 39.00813293457031, + 39.04766845703125, + 39.04766845703125 + ], + "DrainDuration": 7.784289073999844, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 38.9058171536081, + 29.449386225236155, + 39.007787831533708, + 39.00813496900298, + 39.04767049352586, + 39.04767049352586 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 60, + 60, + 61, + 61, + 61 + ], + "Bandwidth": [ + 38.942970275878909, + 29.502450942993165, + 39.021278381347659, + 39.064598083496097, + 39.064598083496097, + 39.064598083496097 + ], + "DrainDuration": 7.8671460139999, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 38.94297230691308, + 29.38154080468019, + 39.02128041646591, + 39.06460012087365, + 39.06460012087365, + 39.06460012087365 + ] + }, + "blink": { + "Framerate": [ + 60, + 58, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 38.90694046020508, + 29.5908145904541, + 39.01515579223633, + 39.08964538574219, + 39.08964538574219, + 39.08964538574219 + ], + "DrainDuration": 7.867791304999628, + "Recieve": 118800, + "Sent": 118800, + "Frames": 594, + "NormalizedBandwidth": [ + 38.985967762036327, + 29.469542310675086, + 39.08964742442606, + 40.00941117887839, + 40.00941117887839, + 40.00941117887839 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 54, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 38.56299591064453, + 24.317609786987306, + 39.07694625854492, + 39.110050201416019, + 39.110050201416019, + 39.110050201416019 + ], + "DrainDuration": 7.766553356999793, + "Recieve": 110400, + "Sent": 110400, + "Frames": 552, + "NormalizedBandwidth": [ + 38.562997921861498, + 27.019567839166095, + 39.076948296566488, + 39.110052241164087, + 39.110052241164087, + 39.110052241164087 + ] + } + }, + "SingleValue": { + "warp": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.2876994609832765, + 1.7765506505966187, + 2.343151569366455, + 2.3724896907806398, + 2.390052318572998, + 2.390052318572998 + ], + "DrainDuration": 3.69888145799996, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.287699580296101, + 1.7765507432509554, + 2.3431516915713326, + 2.3724898145156194, + 2.39005244322394, + 2.39005244322394 + ] + }, + "bridgenet2": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 145.18408203125, + 114.86489868164063, + 145.40121459960938, + 145.43458557128907, + 145.45436096191407, + 145.45436096191407 + ], + "DrainDuration": 10.400244908999867, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 145.18408960318994, + 114.86490467231192, + 145.40122218287366, + 145.43459315629378, + 145.45436854795015, + 145.45436854795015 + ] + }, + "packet": { + "Framerate": [ + 60, + 58, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.081904888153076, + 1.871042251586914, + 2.1085805892944338, + 2.1959121227264406, + 2.3312995433807375, + 2.3312995433807375 + ], + "DrainDuration": 4.185431512999912, + "Recieve": 119600, + "Sent": 119600, + "Frames": 598, + "NormalizedBandwidth": [ + 2.104463925445428, + 1.8710423491693718, + 2.177805133314769, + 2.195912237252182, + 2.3312996649674835, + 2.3312996649674835 + ] + }, + "bytenet": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.4102277755737306, + 1.9082095623016358, + 2.449385166168213, + 2.477407455444336, + 2.477407455444336, + 2.477407455444336 + ], + "DrainDuration": 3.4316659649998657, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.4102279012769047, + 1.9082096618225198, + 2.4595910648309937, + 2.4774075846512035, + 2.4774075846512035, + 2.4774075846512035 + ] + }, + "roblox": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 227.17901611328126, + 224.49551391601563, + 228.17010498046876, + 228.95358276367188, + 229.26002502441407, + 229.26002502441407 + ], + "DrainDuration": 9.133543672000087, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 227.17902796159025, + 224.49552562436907, + 228.17011688046706, + 228.95359470453173, + 229.26003698125613, + 229.26003698125613 + ] + }, + "satset": { + "DrainDuration": 3.4324183919998179, + "DebugStats": { + "reliableCommitBytes": 241602, + "commitGcKb": 0, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 601, + "reliableCommits": 601, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "exactBufferPoolSizeClasses": 5, + "exactBufferPoolHits": 600, + "adapterGcSamples": 120200, + "sendGcSamples": 240400, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 601, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 1, + "exactBufferPoolBytes": 587610, + "adapterGcKb": 9389, + "sendGcKb": 1, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 2.4630578848824227, + 1.9384501991357706, + 2.519162071005505, + 2.554712667189447, + 2.5740772636125976, + 2.5740772636125976 + ], + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.46305775642395, + 1.9384500980377198, + 2.5191619396209719, + 2.5547125339508058, + 2.5740771293640138, + 2.5740771293640138 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -1874, + "listenerCallGcSamples": 120200, + "packetDecodeGcSamples": 120200, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120801, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": 6757, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 0 + }, + "Recieve": 120200 + }, + "zap": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 2.338430881500244, + 1.8679817914962769, + 2.369088888168335, + 2.3784589767456056, + 2.3784589767456056, + 2.3784589767456056 + ], + "DrainDuration": 3.716088968999884, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.3399690973322215, + 1.867981888919119, + 2.378015016253504, + 2.3784591007919078, + 2.3784591007919078, + 2.3784591007919078 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.4127581119537355, + 1.915351390838623, + 2.4495925903320314, + 2.4844465255737306, + 2.4844465255737306, + 2.4844465255737306 + ], + "DrainDuration": 3.8176179279998907, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.4127582377888769, + 1.9153514907319825, + 2.4495927180882406, + 2.484446655147714, + 2.484446655147714, + 2.484446655147714 + ] + }, + "blink": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 2.3603014945983888, + 1.6909959316253663, + 2.4237380027770998, + 2.440016508102417, + 2.458296298980713, + 2.458296298980713 + ], + "DrainDuration": 3.699903177000124, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.3603016176977045, + 1.6980418357794856, + 2.423738129184887, + 2.4400166353591947, + 2.458296427190856, + 2.458296427190856 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 2.3922231197357179, + 1.9022480249404908, + 2.4450292587280275, + 2.4501376152038576, + 2.4501376152038576, + 2.4501376152038576 + ], + "DrainDuration": 3.748861912999928, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 2.392223244499876, + 1.9022481241504564, + 2.4400961959837206, + 2.44502938624624, + 2.44502938624624, + 2.44502938624624 + ] + } + }, + "Strings": { + "warp": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 3.448098659515381, + 3.3145055770874025, + 6.075814247131348, + 6.445077419281006, + 15.775246620178223, + 15.775246620178223 + ], + "DrainDuration": 3.7676475160001248, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 3.4480988393477398, + 3.314505749952339, + 6.075814564009754, + 6.445077755417987, + 15.775247442921448, + 15.775247442921448 + ] + }, + "bridgenet2": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 27188.83984375, + 21572.578125, + 27291.423828125, + 27292.138671875, + 27306.3828125, + 27306.3828125 + ], + "DrainDuration": 39.9191793670002, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 27188.841261758498, + 21572.579250097624, + 27291.42525148367, + 27292.140095270952, + 27306.38423663884, + 27306.38423663884 + ] + }, + "packet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 95.8426284790039, + 73.63484191894531, + 96.41002655029297, + 96.52901458740235, + 96.52901458740235, + 96.52901458740235 + ], + "DrainDuration": 9.449241188000088, + "Recieve": 120200, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 95.8426334775865, + 73.63484575930159, + 96.41003157846768, + 96.52901962178277, + 96.52901962178277, + 96.52901962178277 + ] + }, + "bytenet": { + "Framerate": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "Bandwidth": [ + 0, + 0, + 0, + 0, + 0, + 0 + ], + "DrainDuration": 3.0139235769997869, + "Recieve": 1400, + "Sent": 1400, + "Frames": 7, + "NormalizedBandwidth": [ + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "roblox": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 80407.65625, + 70049.5078125, + 83918.40625, + 86964.1328125, + 92304.15625, + 92304.15625 + ], + "DrainDuration": 10.867273030999968, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 80407.66044358607, + 70049.51146586653, + 83918.41062668595, + 86964.13734803297, + 92304.16106403689, + 92304.16106403689 + ] + }, + "satset": { + "DrainDuration": 9.74898279800027, + "DebugStats": { + "reliableCommitBytes": 260715002, + "commitGcKb": 424, + "unreliableCommits": 0, + "receiveDecodeGcKb": 0, + "commitGcSamples": 601, + "reliableCommits": 601, + "packetDecodeGcKb": 0, + "listenerCallGcSamples": 0, + "packetDecodeGcSamples": 0, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 2, + "streamGrowthBytes": 786432, + "exactBufferPoolSizeClasses": 4, + "exactBufferPoolHits": 600, + "adapterGcSamples": 120200, + "sendGcSamples": 240402, + "listenerDispatchGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolAcceptedReleases": 601, + "exactBufferPoolRejectedBySizeCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "exactBufferPoolMisses": 1, + "exactBufferPoolBytes": 587208, + "adapterGcKb": 9308, + "sendGcKb": 770, + "unreliableCommitBytes": 0, + "listenerCallGcKb": 0, + "receiveDecodeGcSamples": 0 + }, + "Sent": 120200, + "Frames": 601, + "NormalizedBandwidth": [ + 96.4289829954717, + 73.35116196765086, + 96.59933975484478, + 96.7008564837721, + 96.84271745308479, + 96.84271745308479 + ], + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 96.4289779663086, + 73.35115814208985, + 96.59933471679688, + 96.70085144042969, + 96.84271240234375, + 96.84271240234375 + ], + "ServerDebugStats": { + "reliableCommitBytes": 0, + "commitGcKb": 0, + "unreliableCommits": 0, + "listenerDispatchGcSamples": 0, + "exactBufferPoolRejectedBySizeCap": 0, + "reliableCommits": 0, + "listenerCallGcKb": -529, + "listenerCallGcSamples": 120200, + "packetDecodeGcSamples": 120200, + "exactBufferPoolRejectedBySizeClassCap": 0, + "streamGrowths": 0, + "streamGrowthBytes": 0, + "receiveDecodeGcSamples": 120801, + "exactBufferPoolHits": 0, + "adapterGcSamples": 0, + "sendGcSamples": 0, + "commitGcSamples": 0, + "listenerDispatchGcKb": 0, + "exactBufferPoolMisses": 0, + "exactBufferPoolAcceptedReleases": 0, + "exactBufferPoolRejectedByTotalByteCap": 0, + "exactBufferPoolRejectedByPerSizeCap": 0, + "packetDecodeGcKb": -249839, + "exactBufferPoolBytes": 0, + "adapterGcKb": 0, + "exactBufferPoolSizeClasses": 0, + "unreliableCommitBytes": 0, + "sendGcKb": 0, + "receiveDecodeGcKb": 0 + }, + "Recieve": 120200 + }, + "zap": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 100.29021453857422, + 75.2690200805664, + 100.6224594116211, + 100.70121002197266, + 100.77957916259766, + 100.77957916259766 + ], + "DrainDuration": 11.881539900999997, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 100.2902197691165, + 75.26902400615171, + 100.6224646594913, + 100.70121527395003, + 100.7795844186623, + 100.7795844186623 + ] + }, + "netray_compile": { + "Framerate": [ + 60, + 60, + 60, + 60, + 60, + 60 + ], + "Bandwidth": [ + 96.3437728881836, + 73.3901138305664, + 96.48297119140625, + 96.84610748291016, + 97.13309478759766, + 97.13309478759766 + ], + "DrainDuration": 9.89921039300043, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 96.34377791290291, + 73.39011765815912, + 96.48297622338532, + 96.84611253382826, + 97.13309985348332, + 97.13309985348332 + ] + }, + "blink": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 100.3739013671875, + 76.27218627929688, + 100.47459411621094, + 100.83391571044922, + 100.83391571044922, + 100.83391571044922 + ], + "DrainDuration": 9.965582208000342, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 100.36395787110678, + 76.58999101442271, + 100.79213116619622, + 100.83885672784609, + 100.83885672784609, + 100.83885672784609 + ] + }, + "quicknet": { + "Framerate": [ + 60, + 60, + 61, + 61, + 61, + 61 + ], + "Bandwidth": [ + 96.38121032714844, + 47.9400634765625, + 96.53449249267578, + 96.77434539794922, + 96.77434539794922, + 96.77434539794922 + ], + "DrainDuration": 9.816952269000013, + "Recieve": 120000, + "Sent": 120000, + "Frames": 600, + "NormalizedBandwidth": [ + 96.37773429910109, + 48.13981622941128, + 96.5344975273419, + 96.81548622770203, + 96.81548622770203, + 96.81548622770203 + ] + } + } +} \ No newline at end of file diff --git a/benchmark/default-mode-result.json b/benchmark/default-mode-result.json deleted file mode 100644 index 055e2f3..0000000 --- a/benchmark/default-mode-result.json +++ /dev/null @@ -1,1898 +0,0 @@ -{ - "Vectors": { - "warp": { - "Framerate": [ - 60, - 54, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.890460968017578, - 1.7929075956344605, - 3.004763603210449, - 3.5621888637542726, - 3.5621888637542726, - 3.5621888637542726 - ], - "DrainDuration": 5.017596043006051, - "Recieve": 107200, - "Sent": 107200, - "Frames": 536, - "NormalizedBandwidth": [ - 2.9304551222412646, - 1.7929076891418783, - 3.338626403021652, - 3.622565141869823, - 3.622565141869823, - 3.622565141869823 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 15641.9755859375, - 11947.02734375, - 15718.9580078125, - 15720.7001953125, - 15815.02734375, - 15815.02734375 - ], - "DrainDuration": 22.54958272499789, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 15641.976401730099, - 11947.02796683603, - 15718.958827620045, - 15720.701015210907, - 15815.028168567951, - 15815.028168567951 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 72.53569793701172, - 54.78264236450195, - 72.73424530029297, - 73.13679504394531, - 73.13679504394531, - 73.13679504394531 - ], - "DrainDuration": 9.866517457994633, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.4884757654317, - 55.010906217886077, - 72.64267346634483, - 73.13679885832642, - 73.13679885832642, - 73.13679885832642 - ] - }, - "bytenet": { - "Framerate": [ - 60, - 59, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 72.48241424560547, - 54.673179626464847, - 72.79023742675781, - 72.7933578491211, - 73.21208190917969, - 73.21208190917969 - ], - "DrainDuration": 9.43261930499284, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 72.48241802585796, - 54.67318247789336, - 72.79336164559055, - 73.2120857274873, - 73.77156780983313, - 73.77156780983313 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 179145.703125, - 60405.6171875, - 186123.46875, - 187852.375, - 198002.53125, - 198002.53125 - ], - "DrainDuration": 9.65049344500585, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 179145.7124681765, - 60405.620337898436, - 186123.47845709534, - 187852.38479726483, - 198002.54157663673, - 198002.54157663673 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 72.71742248535156, - 55.3709831237793, - 72.8493881225586, - 72.85452270507813, - 72.90422821044922, - 72.90422821044922 - ], - "DrainDuration": 9.449541082998622, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.71742627786068, - 55.370986011601107, - 72.84939192195026, - 72.85452650473758, - 72.90423201270102, - 72.90423201270102 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 72.76981353759766, - 55.466033935546878, - 73.06119537353516, - 73.22405242919922, - 73.22405242919922, - 73.22405242919922 - ], - "DrainDuration": 9.39830150900525, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.76176807324086, - 55.697145289282278, - 73.1241939195844, - 73.22405624813115, - 73.22405624813115, - 73.22405624813115 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 72.4673080444336, - 57.30524444580078, - 72.7082748413086, - 72.80976104736328, - 72.80976104736328, - 72.80976104736328 - ], - "DrainDuration": 9.515919608005789, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 72.43305584066633, - 57.30524743450218, - 72.80976484468823, - 72.9157867292972, - 72.9157867292972, - 72.9157867292972 - ] - }, - "satset": { - "DrainDuration": 8.884687450001366, - "DebugStats": { - "reliableCommitBytes": 72724606, - "commitGcKb": 234, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 1803, - "reliableCommits": 1803, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 8523, - "sendGcKb": 3, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 118.12657781605424, - 114.50610948758367, - 118.94550180895976, - 118.9924607347487, - 119.38084271301222, - 119.38084271301222 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 118.12657165527344, - 114.506103515625, - 118.94549560546875, - 118.9924545288086, - 119.3808364868164, - 119.3808364868164 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 201463, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -7680, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 122003, - "receiveDecodeGcKb": 2 - }, - "Recieve": 120200 - } - }, - "Booleans": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.5280051231384279, - 2.41890287399292, - 2.5903611183166506, - 2.6852736473083498, - 4.595119476318359, - 4.595119476318359 - ], - "DrainDuration": 3.7509580519981684, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.528005254984169, - 2.4189030001485358, - 2.5903612534145106, - 2.6852737873562839, - 4.5951197159725158, - 4.5951197159725158 - ] - }, - "bridgenet2": { - "Framerate": [ - 54, - 52, - 55, - 56, - 56, - 56 - ], - "Bandwidth": [ - 21597.015625, - 15018.9638671875, - 21933.330078125, - 22058.376953125, - 22058.376953125, - 22058.376953125 - ], - "DrainDuration": 23.37892199799535, - "Recieve": 92800, - "Sent": 92800, - "Frames": 464, - "NormalizedBandwidth": [ - 24020.960932802256, - 17401.78102035091, - 24139.794061205463, - 24240.76741273898, - 24240.76741273898, - 24240.76741273898 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 10.267995834350586, - 7.645515441894531, - 10.327715873718262, - 10.333728790283204, - 10.337851524353028, - 10.337851524353028 - ], - "DrainDuration": 5.733045668006525, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 10.2679963698683, - 7.645515840639234, - 10.327716412350619, - 10.333729329229158, - 10.337852063514, - 10.337852063514 - ] - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 19.038877487182618, - 14.346100807189942, - 19.122026443481447, - 19.126558303833009, - 19.186111450195314, - 19.186111450195314 - ], - "DrainDuration": 6.749614586995449, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 19.038878480137457, - 14.346101555397404, - 19.122027458581614, - 19.126559390425734, - 19.186112486565919, - 19.186112486565919 - ] - }, - "roblox": { - "Framerate": [ - 48, - 43, - 49, - 51, - 51, - 51 - ], - "Bandwidth": [ - 52079.02734375, - 42960.4296875, - 54077.0625, - 56808.8671875, - 56808.8671875, - 56808.8671875 - ], - "DrainDuration": 10.855842433011276, - "Recieve": 93600, - "Sent": 93600, - "Frames": 468, - "NormalizedBandwidth": [ - 63487.24735938568, - 53924.29198465775, - 73126.31130630178, - 73879.55508312948, - 73879.55508312948, - 73879.55508312948 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 29.376415252685548, - 22.09522819519043, - 29.51577377319336, - 29.67349624633789, - 29.67349624633789, - 29.67349624633789 - ], - "DrainDuration": 7.484228474000702, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 29.376416784784995, - 22.09522934754638, - 29.51577531256092, - 29.67349779393132, - 29.67349779393132, - 29.67349779393132 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 29.3526554107666, - 21.838335037231447, - 29.515899658203126, - 29.562232971191408, - 29.655065536499025, - 29.655065536499025 - ], - "DrainDuration": 7.80146282298665, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 29.352656941626877, - 21.838336176189374, - 29.51590119757725, - 29.562234512982003, - 29.655067083131216, - 29.655067083131216 - ] - }, - "packet": { - "Framerate": [ - 57, - 48, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 25.295551300048829, - 14.827459335327149, - 26.949735641479493, - 27.766550064086915, - 27.766550064086915, - 27.766550064086915 - ], - "DrainDuration": 6.576663271000143, - "Recieve": 93200, - "Sent": 93200, - "Frames": 466, - "NormalizedBandwidth": [ - 26.89403543481396, - 18.766004243150346, - 27.453480371245488, - 27.88034919787034, - 27.88034919787034, - 27.88034919787034 - ] - }, - "satset": { - "DrainDuration": 5.46710864501074, - "DebugStats": { - "reliableCommitBytes": 15627202, - "commitGcKb": 26, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 9386, - "sendGcKb": 2, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 10.427624292622255, - 8.05251960441066, - 10.48030444912483, - 10.487274716875846, - 10.487274716875846, - 10.487274716875846 - ], - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 10.427623748779297, - 8.085657119750977, - 10.474220275878907, - 10.487274169921875, - 10.487274169921875, - 10.487274169921875 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 828976, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -740810, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - } - }, - "Mixed": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.367743730545044, - 2.001237630844116, - 2.4215505123138429, - 2.4323205947875978, - 2.5007174015045168, - 2.5007174015045168 - ], - "DrainDuration": 3.7973680819995936, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.3677438540325026, - 2.001237735216792, - 2.4215506386075438, - 2.432320721643002, - 2.5007175319270926, - 2.5007175319270926 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 1674.851806640625, - 1321.96240234375, - 1680.8363037109376, - 1685.98828125, - 1688.636962890625, - 1688.636962890625 - ], - "DrainDuration": 17.466414558002727, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 1674.8518939909537, - 1321.962471289462, - 1680.836391373382, - 1685.988369181141, - 1688.6370509599056, - 1688.6370509599056 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 56, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 4.971836090087891, - 3.9490153789520265, - 5.230027198791504, - 5.288918972015381, - 5.288918972015381, - 5.288918972015381 - ], - "DrainDuration": 4.449728205989231, - "Recieve": 104600, - "Sent": 104600, - "Frames": 523, - "NormalizedBandwidth": [ - 4.99255233186328, - 4.026360952269961, - 5.251819250254751, - 5.288919247854, - 5.288919247854, - 5.288919247854 - ] - }, - "bytenet": { - "Framerate": [ - 61, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 4.8627705574035648, - 3.7894835472106935, - 4.907449722290039, - 4.907667636871338, - 4.907667636871338, - 4.907667636871338 - ], - "DrainDuration": 4.734052910003811, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.862770811016812, - 3.7894837448476617, - 4.907449978233487, - 4.907667892826151, - 4.907667892826151, - 4.907667892826151 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 3645.95849609375, - 3551.18408203125, - 3707.31884765625, - 3745.72607421875, - 3793.969970703125, - 3793.969970703125 - ], - "DrainDuration": 9.315273878994049, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 3645.9586862453036, - 3551.1842672399327, - 3707.319041007995, - 3745.726269573588, - 3793.9701685740785, - 3793.9701685740785 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 5.01809549331665, - 3.8224503993988039, - 5.083568096160889, - 5.11272668838501, - 5.136458396911621, - 5.136458396911621 - ], - "DrainDuration": 4.382963971002027, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 5.018095755030725, - 3.822450598755127, - 5.083568361289625, - 5.112726955034486, - 5.136458664798802, - 5.136458664798802 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 5.063509941101074, - 3.9991307258605959, - 5.120892524719238, - 5.168327808380127, - 5.198076248168945, - 5.198076248168945 - ], - "DrainDuration": 4.533552018008777, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 5.063510205183697, - 3.9991309344315164, - 5.120892791794596, - 5.168328077929427, - 5.198076519269748, - 5.198076519269748 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 4.789048671722412, - 3.8322553634643556, - 4.831278324127197, - 4.832939624786377, - 4.894881725311279, - 4.894881725311279 - ], - "DrainDuration": 4.382298404001631, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 4.789048921490764, - 3.8322555633320478, - 4.831278576097997, - 4.83293987684382, - 4.894881980599255, - 4.894881980599255 - ] - }, - "satset": { - "DrainDuration": 4.114856778003741, - "DebugStats": { - "reliableCommitBytes": 3847602, - "commitGcKb": 6, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 0, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 4.28698275989948, - 3.5555240578105087, - 4.321188675227159, - 4.422958127861509, - 4.476990933261327, - 4.476990933261327 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 61, - 61 - ], - "Bandwidth": [ - 4.276167392730713, - 3.5555238723754885, - 4.321188449859619, - 4.422957897186279, - 4.476990699768066, - 4.476990699768066 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 34093, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -876, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - } - }, - "Entities": { - "warp": { - "Framerate": [ - 53, - 50, - 55, - 55, - 55, - 55 - ], - "Bandwidth": [ - 11.196282386779786, - 7.589590549468994, - 11.764313697814942, - 11.93932056427002, - 11.93932056427002, - 11.93932056427002 - ], - "DrainDuration": 5.864050429008785, - "Recieve": 104800, - "Sent": 104800, - "Frames": 524, - "NormalizedBandwidth": [ - 12.72785005758546, - 9.221353053669024, - 13.350331957596519, - 13.389117109362792, - 13.389117109362792, - 13.389117109362792 - ] - }, - "bridgenet2": { - "Framerate": [ - 17, - 16, - 19, - 20, - 20, - 20 - ], - "Bandwidth": [ - 21929.3984375, - 14871.76171875, - 27527.98828125, - 29490.4296875, - 29490.4296875, - 29490.4296875 - ], - "DrainDuration": 27.5115366109967, - "Recieve": 26800, - "Sent": 26800, - "Frames": 134, - "NormalizedBandwidth": [ - 81590.26562036792, - 45916.56730386879, - 92400.67540511597, - 107553.33585984344, - 107553.33585984344, - 107553.33585984344 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 59, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 38.92438888549805, - 28.630207061767579, - 39.00762939453125, - 39.03105926513672, - 39.03105926513672, - 39.03105926513672 - ], - "DrainDuration": 8.334220327000367, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 38.84776410488235, - 28.63020860827715, - 39.03106130076509, - 39.14743247525482, - 39.14743247525482, - 39.14743247525482 - ] - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 39.03129577636719, - 28.422805786132814, - 39.16684341430664, - 39.24283218383789, - 39.24283218383789, - 39.24283218383789 - ], - "DrainDuration": 8.278367886989145, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 38.88097623292613, - 28.422807850855265, - 39.16684633246388, - 39.24283488837032, - 39.24283488837032, - 39.24283488837032 - ] - }, - "roblox": { - "Framerate": [ - 19, - 18, - 19, - 20, - 20, - 20 - ], - "Bandwidth": [ - 200387.59375, - 169907.078125, - 216616.25, - 217491.9375, - 217491.9375, - 217491.9375 - ], - "DrainDuration": 14.227369316999102, - "Recieve": 36000, - "Sent": 36000, - "Frames": 180, - "NormalizedBandwidth": [ - 658854.2108462813, - 554433.6622652277, - 731014.6159614716, - 743114.1216436246, - 743114.1216436246, - 743114.1216436246 - ] - }, - "blink": { - "Framerate": [ - 60, - 49, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 36.03293228149414, - 11.830374717712403, - 38.78770065307617, - 38.87779998779297, - 38.87779998779297, - 38.87779998779297 - ], - "DrainDuration": 8.450334709996242, - "Recieve": 80800, - "Sent": 80800, - "Frames": 404, - "NormalizedBandwidth": [ - 36.032934160758, - 14.486173852259676, - 38.7877026760124, - 38.877802015428247, - 38.877802015428247, - 38.877802015428247 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 38.920501708984378, - 28.92695426940918, - 38.9479866027832, - 38.94910430908203, - 38.94910430908203, - 38.94910430908203 - ], - "DrainDuration": 8.28381725399231, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 38.87452519030617, - 28.926955939709364, - 38.94910634043612, - 39.09136793022222, - 39.09136793022222, - 39.09136793022222 - ] - }, - "packet": { - "Framerate": [ - 50, - 49, - 51, - 52, - 52, - 52 - ], - "Bandwidth": [ - 31.260360717773439, - 21.640050888061525, - 32.47395324707031, - 33.11435317993164, - 33.11435317993164, - 33.11435317993164 - ], - "DrainDuration": 8.382789288007189, - "Recieve": 99400, - "Sent": 99400, - "Frames": 497, - "NormalizedBandwidth": [ - 38.2088710109303, - 25.458884749214115, - 38.91596125487791, - 39.131115721712578, - 39.131115721712578, - 39.131115721712578 - ] - }, - "satset": { - "DrainDuration": 9.23560994998843, - "DebugStats": { - "reliableCommitBytes": 72724606, - "commitGcKb": 2, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 1803, - "reliableCommits": 1803, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 7543, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 117.52604525299575, - 113.38900585266203, - 118.25751349182838, - 118.65625629891292, - 119.3990540787081, - 119.3990540787081 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 117.52603912353516, - 113.38899993896485, - 118.25750732421875, - 118.65625, - 119.3990478515625, - 119.3990478515625 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 37284, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -3342, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 122003, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - } - }, - "Strings": { - "warp": { - "Framerate": [ - 60, - 57, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 3.339949369430542, - 2.410991907119751, - 4.599241256713867, - 4.635377883911133, - 4.635377883911133, - 4.635377883911133 - ], - "DrainDuration": 4.316263066997635, - "Recieve": 117400, - "Sent": 117400, - "Frames": 587, - "NormalizedBandwidth": [ - 3.345189030590072, - 2.559035405665311, - 4.84130684301723, - 4.879345404525255, - 4.879345404525255, - 4.879345404525255 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 59, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 27369.91796875, - 21649.95703125, - 27724.568359375, - 27839.669921875, - 27839.669921875, - 27839.669921875 - ], - "DrainDuration": 24.09962713799905, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 27383.283318518294, - 21561.228833576643, - 27610.94453193514, - 27690.14639641275, - 27690.14639641275, - 27690.14639641275 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 57, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 96.01789855957031, - 72.67913818359375, - 96.50682830810547, - 96.6336898803711, - 96.6336898803711, - 96.6336898803711 - ], - "DrainDuration": 10.349840333990869, - "Recieve": 91600, - "Sent": 91600, - "Frames": 458, - "NormalizedBandwidth": [ - 96.01790356729396, - 72.67914197410619, - 96.50683334132879, - 101.71967886337974, - 101.71967886337974, - 101.71967886337974 - ] - }, - "bytenet": { - "Framerate": [ - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Bandwidth": [ - 0, - 0, - 0, - 0, - 0, - 0 - ], - "DrainDuration": 4.554712537996238, - "Recieve": 1600, - "Sent": 1600, - "Frames": 8, - "NormalizedBandwidth": [ - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 158676.125, - 62701.5625, - 185281.1875, - 189184.796875, - 189184.796875, - 189184.796875 - ], - "DrainDuration": 11.418339181996999, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 158214.249038932, - 62701.5658275794, - 185281.19750828006, - 189973.0770341348, - 189973.0770341348, - 189973.0770341348 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 99.90201568603516, - 70.48593139648438, - 100.270751953125, - 100.72390747070313, - 100.72390747070313, - 100.72390747070313 - ], - "DrainDuration": 10.348186507995706, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 99.8598115024206, - 71.36700929384239, - 100.33517218108904, - 100.5040093556488, - 100.5040093556488, - 100.5040093556488 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 101.22911071777344, - 76.48998260498047, - 101.49319458007813, - 101.49600219726563, - 101.52214050292969, - 101.52214050292969 - ], - "DrainDuration": 10.35065956399194, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 101.22911599728298, - 76.48998659424393, - 101.49319987336071, - 101.49600749069464, - 101.52214579772192, - 101.52214579772192 - ] - }, - "packet": { - "Framerate": [ - 60, - 58, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 95.73635864257813, - 73.33147430419922, - 95.94190979003906, - 96.01290893554688, - 96.23210906982422, - 96.23210906982422 - ], - "DrainDuration": 10.348626498001977, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 95.75932811435507, - 73.33147812873364, - 96.01291394301029, - 96.23211408871981, - 96.87157463597005, - 96.87157463597005 - ] - }, - "satset": { - "DrainDuration": 10.300590774000739, - "DebugStats": { - "reliableCommitBytes": 260723416, - "commitGcKb": 824, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 4808, - "reliableCommits": 4808, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 9132, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 899.6280376419122, - 849.0741409623524, - 907.7277084744992, - 922.8502068217927, - 958.1896251687931, - 958.1896251687931 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 899.6279907226563, - 849.0740966796875, - 907.7276611328125, - 922.8501586914063, - 958.1895751953125, - 958.1895751953125 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 104335, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": 2, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 125008, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - } - }, - "SingleValue": { - "warp": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 1.801207184791565, - 1.2526928186416627, - 1.969154953956604, - 1.9788663387298585, - 1.9788663387298585, - 1.9788663387298585 - ], - "DrainDuration": 3.783751056995243, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 1.80120727873184, - 1.2526928839746843, - 1.9691550566560379, - 1.9788664419357805, - 1.9788664419357805, - 1.9788664419357805 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 145.08642578125, - 114.35136413574219, - 145.39695739746095, - 145.45826721191407, - 145.72694396972657, - 145.72694396972657 - ], - "DrainDuration": 11.348725957999705, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 145.08643334809677, - 114.35137009963057, - 145.39696498050319, - 145.45827479815388, - 145.72695156997896, - 145.72695156997896 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 58, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.390005350112915, - 1.8530726432800294, - 2.4323086738586427, - 2.463594436645508, - 2.4771370887756349, - 2.4771370887756349 - ], - "DrainDuration": 3.7498374999995578, - "Recieve": 119600, - "Sent": 119600, - "Frames": 598, - "NormalizedBandwidth": [ - 2.3900054758743405, - 1.8530727399252989, - 2.4323088007134254, - 2.46359456513197, - 2.4771372179684016, - 2.4771372179684016 - ] - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.309868097305298, - 1.8454840183258057, - 2.333796977996826, - 2.3554787635803224, - 2.3859333992004396, - 2.3859333992004396 - ], - "DrainDuration": 3.716698995005572, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.309868217774307, - 1.8454841145752977, - 2.3337970997138237, - 2.355478886428113, - 2.385933523636563, - 2.385933523636563 - ] - }, - "roblox": { - "Framerate": [ - 60, - 55, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 231.52804565429688, - 228.96710205078126, - 232.88821411132813, - 232.92637634277345, - 232.92637634277345, - 232.92637634277345 - ], - "DrainDuration": 9.268308947008336, - "Recieve": 118600, - "Sent": 118600, - "Frames": 593, - "NormalizedBandwidth": [ - 231.96397083809758, - 228.96711399234619, - 232.92638849083063, - 253.2994244071896, - 253.2994244071896, - 253.2994244071896 - ] - }, - "blink": { - "Framerate": [ - 61, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 2.3300230503082277, - 1.87629234790802, - 2.3399951457977297, - 2.3567752838134767, - 2.3567752838134767, - 2.3567752838134767 - ], - "DrainDuration": 3.704949916995247, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.3285805009310147, - 1.8762924457642916, - 2.3399952678379867, - 2.356775406728886, - 2.356775406728886, - 2.356775406728886 - ] - }, - "zap": { - "Framerate": [ - 60, - 54, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 2.387258529663086, - 1.9198942184448243, - 2.4283559322357179, - 2.4355409145355226, - 2.4355409145355226, - 2.4355409145355226 - ], - "DrainDuration": 3.7995638299908025, - "Recieve": 118400, - "Sent": 118400, - "Frames": 592, - "NormalizedBandwidth": [ - 2.377474808318438, - 1.9198943185751106, - 2.4355410415588798, - 2.4587105107511948, - 2.4587105107511948, - 2.4587105107511948 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.289534330368042, - 1.8420891761779786, - 2.332875967025757, - 2.3344199657440187, - 2.3497910499572756, - 2.3497910499572756 - ], - "DrainDuration": 3.7332146920089146, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 2.2895344497765626, - 1.8420892722504157, - 2.3328760886947199, - 2.3344200874935074, - 2.3497911725084288, - 2.3497911725084288 - ] - }, - "satset": { - "DrainDuration": 3.650029887998244, - "DebugStats": { - "reliableCommitBytes": 241602, - "commitGcKb": 0, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 9392, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 2.385438566640534, - 1.9411599456378737, - 2.437851317710864, - 2.4420696578509117, - 2.4612120481467505, - 2.4612120481467505 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.3854384422302248, - 1.9411598443984986, - 2.4378511905670168, - 2.4420695304870607, - 2.461211919784546, - 2.461211919784546 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 8374, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -1196, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - } - } -} \ No newline at end of file diff --git a/benchmark/latency-mode-result.json b/benchmark/latency-mode-result.json deleted file mode 100644 index 210704b..0000000 --- a/benchmark/latency-mode-result.json +++ /dev/null @@ -1,1898 +0,0 @@ -{ - "Vectors": { - "warp": { - "Framerate": [ - 60, - 54, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 6.709656715393066, - 1.4099892377853394, - 7.120542049407959, - 8.696324348449707, - 8.696324348449707, - 8.696324348449707 - ], - "DrainDuration": 5.149838657001965, - "Recieve": 107800, - "Sent": 107800, - "Frames": 539, - "NormalizedBandwidth": [ - 6.709657065328933, - 1.5797102491326936, - 7.120542420773166, - 8.696324801998366, - 8.696324801998366, - 8.696324801998366 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 59, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 15613.310546875, - 11969.8486328125, - 15708.1064453125, - 15735.0009765625, - 15743.3115234375, - 15743.3115234375 - ], - "DrainDuration": 22.54962864400295, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 15613.3113611726, - 11969.849257088754, - 15708.107264554092, - 15735.00179720675, - 15743.31234451518, - 15743.31234451518 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 52, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 71.82942962646485, - 25.026762008666993, - 73.36336517333985, - 73.59359741210938, - 73.59359741210938, - 73.59359741210938 - ], - "DrainDuration": 9.882727651012829, - "Recieve": 108600, - "Sent": 108600, - "Frames": 543, - "NormalizedBandwidth": [ - 71.82943337266153, - 29.23799749849648, - 73.3633689995375, - 73.90024122125453, - 73.90024122125453, - 73.90024122125453 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 72.78044128417969, - 54.00513458251953, - 73.04763793945313, - 73.0983657836914, - 73.4731216430664, - 73.4731216430664 - ], - "DrainDuration": 9.532480356007, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.7804450799755, - 54.005137399106789, - 73.04764174918432, - 73.09836959606827, - 73.47312547498831, - 73.47312547498831 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 174809.515625, - 100636.25, - 209766.03125, - 214198.3125, - 214198.3125, - 214198.3125 - ], - "DrainDuration": 9.866745417006314, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 174809.5247420267, - 101055.57293192949, - 209766.04219015107, - 213320.4617871618, - 213320.4617871618, - 213320.4617871618 - ] - }, - "satset": { - "DrainDuration": 8.215696908999235, - "DebugStats": { - "reliableCommitBytes": 72601200, - "commitGcKb": 118, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 600, - "reliableCommits": 600, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 1, - "streamGrowthBytes": 131072, - "adapterGcSamples": 120000, - "sendGcSamples": 240001, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 8127, - "sendGcKb": 131, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 38.83786594767159, - 29.728144561102256, - 39.110662592758419, - 39.11792577673097, - 39.11792577673097, - 39.11792577673097 - ], - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 38.83786392211914, - 29.60478973388672, - 39.117923736572269, - 39.164852142333987, - 39.164852142333987, - 39.164852142333987 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 200269, - "listenerCallGcSamples": 120000, - "packetDecodeGcSamples": 120000, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -1845, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120600, - "receiveDecodeGcKb": 2 - }, - "Recieve": 120000 - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 72.5946044921875, - 48.951656341552737, - 72.68463897705078, - 72.85352325439453, - 72.85352325439453, - 72.85352325439453 - ], - "DrainDuration": 10.316452951999964, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.56147381611385, - 48.95165889458056, - 72.68464276785011, - 72.85352705400186, - 72.85352705400186, - 72.85352705400186 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 72.8536148071289, - 54.42557907104492, - 72.95780944824219, - 72.96881866455078, - 73.09724426269531, - 73.09724426269531 - ], - "DrainDuration": 10.084193439004594, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 72.85361860674101, - 54.425581909560069, - 72.95781325328847, - 72.96882247017124, - 73.09724807501368, - 73.09724807501368 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 61, - 61 - ], - "Bandwidth": [ - 72.62368774414063, - 55.93399429321289, - 72.85077667236328, - 72.93170928955078, - 72.97710418701172, - 72.97710418701172 - ], - "DrainDuration": 9.499660818997655, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 72.62098309656125, - 55.93399721039802, - 72.85078047182737, - 72.93171309323583, - 72.9771079930643, - 72.9771079930643 - ] - } - }, - "Booleans": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.5086474418640138, - 2.4267008304595949, - 2.5434975624084474, - 2.599701404571533, - 4.8839430809021, - 4.8839430809021 - ], - "DrainDuration": 3.833497883999371, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.5086475727001735, - 2.4267009570219058, - 2.5434976950621825, - 2.599701540156527, - 4.8839433356195809, - 4.8839433356195809 - ] - }, - "bridgenet2": { - "Framerate": [ - 52, - 50, - 52, - 52, - 52, - 52 - ], - "Bandwidth": [ - 20440.36328125, - 14222.26953125, - 20817.8203125, - 20830.083984375, - 20830.083984375, - 20830.083984375 - ], - "DrainDuration": 23.72997330999351, - "Recieve": 102200, - "Sent": 102200, - "Frames": 511, - "NormalizedBandwidth": [ - 23969.856756586956, - 17208.946823698858, - 24235.002486936766, - 24259.964925092096, - 24259.964925092096, - 24259.964925092096 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 10.411065101623536, - 7.795403957366943, - 10.457037925720215, - 10.478292465209961, - 10.514304161071778, - 10.514304161071778 - ], - "DrainDuration": 5.517919953999808, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 10.411065644602893, - 7.795404363928942, - 10.457038471097242, - 10.478293011695499, - 10.514304709435472, - 10.514304709435472 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 29.41815948486328, - 22.286975860595704, - 29.495773315429689, - 29.504188537597658, - 29.623083114624025, - 29.623083114624025 - ], - "DrainDuration": 7.56714076299977, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 29.41816101913986, - 22.286977022952074, - 29.495774853754143, - 29.504190076361, - 29.6230846595882, - 29.6230846595882 - ] - }, - "roblox": { - "Framerate": [ - 47, - 46, - 47, - 48, - 48, - 48 - ], - "Bandwidth": [ - 54850.5, - 50982.9921875, - 58248.68359375, - 58498.89453125, - 58498.89453125, - 58498.89453125 - ], - "DrainDuration": 10.883574213992688, - "Recieve": 93200, - "Sent": 93200, - "Frames": 466, - "NormalizedBandwidth": [ - 71744.48005270695, - 66654.17844951219, - 74609.2600992908, - 75301.77151548857, - 75301.77151548857, - 75301.77151548857 - ] - }, - "satset": { - "DrainDuration": 5.733056135009974, - "DebugStats": { - "reliableCommitBytes": 15627202, - "commitGcKb": 25, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 9384, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 10.378378455703299, - 8.016314906988994, - 10.436980791828497, - 10.473319364547969, - 10.473319364547969, - 10.473319364547969 - ], - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 10.39358901977539, - 7.983051776885986, - 10.430319786071778, - 10.436980247497559, - 10.436980247497559, - 10.436980247497559 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 893668, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -897841, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 19.176868438720704, - 14.401999473571778, - 19.27757453918457, - 19.283002853393556, - 19.283002853393556, - 19.283002853393556 - ], - "DrainDuration": 6.567377958999714, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 19.17686943887233, - 14.402000224694583, - 19.283003859080524, - 19.352660432438755, - 19.352660432438755, - 19.352660432438755 - ] - }, - "packet": { - "Framerate": [ - 58, - 57, - 58, - 60, - 60, - 60 - ], - "Bandwidth": [ - 26.09518814086914, - 19.7695369720459, - 28.519512176513673, - 29.08045768737793, - 29.08045768737793, - 29.08045768737793 - ], - "DrainDuration": 7.360662229999434, - "Recieve": 115800, - "Sent": 115800, - "Frames": 579, - "NormalizedBandwidth": [ - 27.071632823912127, - 20.536459916930484, - 29.44396522846702, - 29.502945554249235, - 29.502945554249235, - 29.502945554249235 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 61, - 61 - ], - "Bandwidth": [ - 29.401473999023439, - 22.449277877807618, - 29.4440975189209, - 29.45580291748047, - 29.459657669067384, - 29.459657669067384 - ], - "DrainDuration": 7.4836189199995719, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 29.4014755324298, - 22.449279048628698, - 29.44409905455025, - 29.45965920550826, - 29.578536958561047, - 29.578536958561047 - ] - } - }, - "Mixed": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.285691976547241, - 2.0940165519714357, - 2.4591119289398195, - 2.503413677215576, - 2.5347096920013429, - 2.5347096920013429 - ], - "DrainDuration": 3.6146651309973096, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.2856920957553674, - 2.094016661182909, - 2.4591120571925009, - 2.5034138077787739, - 2.5347098241967549, - 2.5347098241967549 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 1680.3319091796876, - 1333.3367919921876, - 1682.7130126953126, - 1683.593505859375, - 1683.593505859375, - 1683.593505859375 - ], - "DrainDuration": 16.98342470198986, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 1680.3319968158258, - 1333.3368615311202, - 1682.713100455635, - 1683.5935936656188, - 1683.5935936656188, - 1683.5935936656188 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 4.987257480621338, - 3.819934844970703, - 5.054417610168457, - 5.069162368774414, - 5.069162368774414, - 5.069162368774414 - ], - "DrainDuration": 4.383725410996703, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.987257740727085, - 3.8042795744528599, - 5.0544178737768779, - 5.069162633151834, - 5.069162633151834, - 5.069162633151834 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 4.97285795211792, - 4.023661136627197, - 5.1511945724487309, - 5.165728569030762, - 5.211760997772217, - 5.211760997772217 - ], - "DrainDuration": 4.583293417003006, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.972858211472673, - 4.023661346477478, - 5.151194841104463, - 5.165728838444501, - 5.211761269586734, - 5.211761269586734 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 3558.9931640625, - 3427.2333984375, - 3706.50439453125, - 3745.291015625, - 3847.739013671875, - 3847.739013671875 - ], - "DrainDuration": 9.383830263992423, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 3558.993349678458, - 3427.2335771816508, - 3706.504587840518, - 3745.291210957148, - 3847.7392143471026, - 3847.7392143471026 - ] - }, - "satset": { - "DrainDuration": 4.217027832011809, - "DebugStats": { - "reliableCommitBytes": 3841200, - "commitGcKb": 7, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 600, - "reliableCommits": 600, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120000, - "sendGcSamples": 240000, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.31099437309026, - 3.3748039575191326, - 4.396046390923285, - 4.417518369277023, - 4.4220998209319799, - 4.4220998209319799 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 4.3109941482543949, - 3.3748037815093996, - 4.396046161651611, - 4.417518138885498, - 4.422099590301514, - 4.422099590301514 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 33733, - "listenerCallGcSamples": 120000, - "packetDecodeGcSamples": 120000, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -815, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120600, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120000 - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 4.859020233154297, - 3.9970057010650636, - 5.129150867462158, - 5.145942211151123, - 5.145942211151123, - 5.145942211151123 - ], - "DrainDuration": 4.64927950699348, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.85902048657195, - 3.9970059169701588, - 5.129151134968222, - 5.145942479532923, - 5.145942479532923, - 5.145942479532923 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 4.7038164138793949, - 3.645994186401367, - 4.75673770904541, - 4.799077987670898, - 4.884762287139893, - 4.884762287139893 - ], - "DrainDuration": 4.366468509004335, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.703816659202538, - 3.645994376554782, - 4.756737957128614, - 4.79907823796232, - 4.884762541900098, - 4.884762541900098 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 5.011424541473389, - 3.9369800090789797, - 5.033984184265137, - 5.068098545074463, - 5.081544399261475, - 5.081544399261475 - ], - "DrainDuration": 4.716122358004213, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 5.011424802839546, - 3.9369802144084877, - 5.033984446807871, - 5.0680988093964, - 5.081544664284667, - 5.081544664284667 - ] - } - }, - "Entities": { - "warp": { - "Framerate": [ - 52, - 48, - 52, - 53, - 53, - 53 - ], - "Bandwidth": [ - 9.991240501403809, - 7.457734107971191, - 11.156453132629395, - 11.567028999328614, - 11.567028999328614, - 11.567028999328614 - ], - "DrainDuration": 7.008535045009921, - "Recieve": 100200, - "Sent": 100200, - "Frames": 501, - "NormalizedBandwidth": [ - 12.039445493511014, - 8.963623217458578, - 13.791458409616113, - 13.808304795985452, - 13.808304795985452, - 13.808304795985452 - ] - }, - "bridgenet2": { - "Framerate": [ - 18, - 17, - 18, - 19, - 19, - 19 - ], - "Bandwidth": [ - 28973.953125, - 13049.1376953125, - 31393.55859375, - 33632.66015625, - 33632.66015625, - 33632.66015625 - ], - "DrainDuration": 27.845124879007927, - "Recieve": 30200, - "Sent": 30200, - "Frames": 151, - "NormalizedBandwidth": [ - 98591.92874522704, - 41894.60215413484, - 109005.41620196977, - 120187.30636667559, - 120187.30636667559, - 120187.30636667559 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 38.96963882446289, - 28.8632755279541, - 39.038116455078128, - 39.07029724121094, - 39.072296142578128, - 39.072296142578128 - ], - "DrainDuration": 8.316689771003439, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 38.969640856887938, - 28.863277033291227, - 39.038118491074559, - 39.07029927888573, - 39.072298180357169, - 39.072298180357169 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 38.96997833251953, - 29.015649795532228, - 39.00817108154297, - 39.02146530151367, - 39.12831497192383, - 39.12831497192383 - ], - "DrainDuration": 8.400210028004949, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 38.96998036496228, - 29.015651308816289, - 39.00817311597763, - 39.02146733664168, - 39.12831701262448, - 39.12831701262448 - ] - }, - "roblox": { - "Framerate": [ - 18, - 17, - 18, - 19, - 19, - 19 - ], - "Bandwidth": [ - 197299.859375, - 182099.53125, - 212456.8125, - 217581.34375, - 217581.34375, - 217581.34375 - ], - "DrainDuration": 14.265211578996969, - "Recieve": 34200, - "Sent": 34200, - "Frames": 171, - "NormalizedBandwidth": [ - 690549.5426024647, - 629760.9114681836, - 738742.9832118796, - 780733.0848301966, - 780733.0848301966, - 780733.0848301966 - ] - }, - "satset": { - "DrainDuration": 8.322948571003508, - "DebugStats": { - "reliableCommitBytes": 72722202, - "commitGcKb": 0, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 7869, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 39.15123952968912, - 29.455731974468479, - 39.24122442818103, - 39.258817812887659, - 39.273450992361777, - 39.273450992361777 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 39.15123748779297, - 29.455730438232423, - 39.2412223815918, - 39.25881576538086, - 39.2734489440918, - 39.2734489440918 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 88813, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -2994, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 39.04008483886719, - 29.01456069946289, - 39.21613311767578, - 39.225399017333987, - 39.225399017333987, - 39.225399017333987 - ], - "DrainDuration": 8.350599078999949, - "Recieve": 119800, - "Sent": 119800, - "Frames": 599, - "NormalizedBandwidth": [ - 39.04008771122126, - 29.256351014764783, - 39.45072944186563, - 39.55228050123543, - 39.55228050123543, - 39.55228050123543 - ] - }, - "packet": { - "Framerate": [ - 52, - 50, - 52, - 52, - 52, - 52 - ], - "Bandwidth": [ - 30.11553955078125, - 20.197500228881837, - 31.87305450439453, - 32.00583267211914, - 32.00583267211914, - 32.00583267211914 - ], - "DrainDuration": 8.339981492012157, - "Recieve": 102000, - "Sent": 102000, - "Frames": 510, - "NormalizedBandwidth": [ - 35.430048180170988, - 23.499015784715494, - 37.39143131132933, - 38.24766722194006, - 38.24766722194006, - 38.24766722194006 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 61, - 61 - ], - "Bandwidth": [ - 38.97825241088867, - 29.38810157775879, - 38.99757385253906, - 39.017723083496097, - 39.03395080566406, - 39.03395080566406 - ], - "DrainDuration": 8.263846114001354, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 38.97825444376295, - 29.388103110467726, - 38.99757588642103, - 39.01772511842893, - 39.03395284144324, - 39.03395284144324 - ] - } - }, - "Strings": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 4.443981647491455, - 3.3753182888031008, - 5.856051445007324, - 6.189422130584717, - 6.478349685668945, - 6.478349685668945 - ], - "DrainDuration": 4.317077106999932, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 4.443981879263159, - 3.3753184648396674, - 5.856051750424207, - 6.189422453388236, - 6.478350023541211, - 6.478350023541211 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 27457.384765625, - 21161.580078125, - 27694.439453125, - 27980.609375, - 28068.15625, - 28068.15625 - ], - "DrainDuration": 25.232977284002119, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 27457.386197639207, - 21161.58122120392, - 27694.440897502573, - 27980.610834302497, - 28068.157713868422, - 28068.157713868422 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 96.4015884399414, - 72.80319213867188, - 96.70467376708985, - 96.89170837402344, - 96.89170837402344, - 96.89170837402344 - ], - "DrainDuration": 11.949982346995967, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 96.3110630674467, - 73.1065425514845, - 96.7046788106316, - 96.89171342731982, - 96.89171342731982, - 96.89171342731982 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 100.43354797363281, - 67.98133087158203, - 100.70870208740235, - 100.7239990234375, - 100.7239990234375, - 100.7239990234375 - ], - "DrainDuration": 10.317053609993309, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 100.2959667820463, - 67.98133441708473, - 100.72400427660341, - 101.01239020824147, - 101.01239020824147, - 101.01239020824147 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 62755.31640625, - 47559.0078125, - 146779.453125, - 160764.46875, - 160764.46875, - 160764.46875 - ], - "DrainDuration": 13.047871394010145, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 62755.3196791948, - 47364.09633806866, - 146779.46078014503, - 161434.32904771914, - 161434.32904771914, - 161434.32904771914 - ] - }, - "satset": { - "DrainDuration": 10.333382266006084, - "DebugStats": { - "reliableCommitBytes": 260281200, - "commitGcKb": 424, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 600, - "reliableCommits": 600, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 2, - "streamGrowthBytes": 786432, - "adapterGcSamples": 120000, - "sendGcSamples": 240002, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 7168, - "sendGcKb": 769, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 96.37056471849917, - 73.8260689138059, - 96.86780290361185, - 96.93914537559437, - 97.09934741031674, - 97.09934741031674 - ], - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 96.37055969238281, - 73.82606506347656, - 96.8677978515625, - 96.93914031982422, - 97.0993423461914, - 97.0993423461914 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 159692, - "listenerCallGcSamples": 120000, - "packetDecodeGcSamples": 120000, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": 2, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120600, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120000 - }, - "bytenet": { - "Framerate": [ - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Bandwidth": [ - 0, - 0, - 0, - 0, - 0, - 0 - ], - "DrainDuration": 4.535122966000927, - "Recieve": 1600, - "Sent": 1600, - "Frames": 8, - "NormalizedBandwidth": [ - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 61, - 61, - 61, - 61 - ], - "Bandwidth": [ - 95.9897689819336, - 72.84919738769531, - 96.62486267089844, - 96.62947845458985, - 96.62947845458985, - 96.62947845458985 - ], - "DrainDuration": 10.433760499989149, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 95.98977398819017, - 72.84920118707703, - 96.62486771027773, - 96.62948349420987, - 96.62948349420987, - 96.62948349420987 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 100.05217742919922, - 75.12348175048828, - 100.24107360839844, - 100.26873779296875, - 100.42533111572266, - 100.42533111572266 - ], - "DrainDuration": 12.300088531002985, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 100.0521826473269, - 75.12348566848317, - 100.24107883637783, - 100.26874302239094, - 100.42533635331182, - 100.42533635331182 - ] - } - }, - "SingleValue": { - "warp": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 2.241762399673462, - 1.7462072372436524, - 2.280869483947754, - 2.311460494995117, - 2.311460494995117, - 2.311460494995117 - ], - "DrainDuration": 3.7998242970061257, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.241762516590482, - 1.7390507417041388, - 2.2808696029043675, - 2.311460615547176, - 2.311460615547176, - 2.311460615547176 - ] - }, - "bridgenet2": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 144.8165740966797, - 114.40079498291016, - 144.9199981689453, - 144.95138549804688, - 145.18226623535157, - 145.18226623535157 - ], - "DrainDuration": 11.432884189998731, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 144.8165816494526, - 114.40080094937656, - 144.9200057271122, - 144.95139305785075, - 145.1822738071968, - 145.1822738071968 - ] - }, - "netray_compile": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.37839412689209, - 1.7392919063568116, - 2.423856735229492, - 2.4351439476013185, - 2.451141119003296, - 2.451141119003296 - ], - "DrainDuration": 3.733749546998297, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.37839425093501, - 1.7392919970679533, - 2.423856861643472, - 2.435144074603972, - 2.451141246840267, - 2.451141246840267 - ] - }, - "zap": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.3771073818206789, - 1.826068639755249, - 2.4150452613830568, - 2.4232165813446047, - 2.426578998565674, - 2.426578998565674 - ], - "DrainDuration": 3.732387935000588, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.3771075057964898, - 1.82606873499215, - 2.415045387337482, - 2.4232167077251978, - 2.4265791251216308, - 2.4265791251216308 - ] - }, - "roblox": { - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 233.7328643798828, - 229.4481658935547, - 234.47068786621095, - 235.19984436035157, - 235.19984436035157, - 235.19984436035157 - ], - "DrainDuration": 10.316508645002614, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 233.73287657000163, - 229.44817786020907, - 234.47070009481025, - 235.19985662697935, - 235.19985662697935, - 235.19985662697935 - ] - }, - "satset": { - "DrainDuration": 3.698995181999635, - "DebugStats": { - "reliableCommitBytes": 241602, - "commitGcKb": 0, - "unreliableCommits": 0, - "receiveDecodeGcKb": 0, - "commitGcSamples": 601, - "reliableCommits": 601, - "packetDecodeGcKb": 0, - "listenerCallGcSamples": 0, - "packetDecodeGcSamples": 0, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 120200, - "sendGcSamples": 240400, - "listenerDispatchGcKb": 0, - "listenerDispatchGcSamples": 0, - "adapterGcKb": 7792, - "sendGcKb": 1, - "unreliableCommitBytes": 0, - "listenerCallGcKb": 0, - "receiveDecodeGcSamples": 0 - }, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 2.382770424182654, - 1.8550478677193945, - 2.4348571714693225, - 2.4499806251366698, - 2.4499806251366698, - 2.4499806251366698 - ], - "Framerate": [ - 60, - 60, - 60, - 61, - 61, - 61 - ], - "Bandwidth": [ - 2.382770299911499, - 1.8473504781723023, - 2.4247539043426515, - 2.4499804973602297, - 2.4499804973602297, - 2.4499804973602297 - ], - "ServerDebugStats": { - "reliableCommitBytes": 0, - "commitGcKb": 0, - "unreliableCommits": 0, - "listenerDispatchGcSamples": 0, - "commitGcSamples": 0, - "reliableCommits": 0, - "packetDecodeGcKb": 8023, - "listenerCallGcSamples": 120200, - "packetDecodeGcSamples": 120200, - "streamGrowths": 0, - "streamGrowthBytes": 0, - "adapterGcSamples": 0, - "sendGcSamples": 0, - "listenerDispatchGcKb": 0, - "listenerCallGcKb": -1127, - "adapterGcKb": 0, - "sendGcKb": 0, - "unreliableCommitBytes": 0, - "receiveDecodeGcSamples": 120801, - "receiveDecodeGcKb": 0 - }, - "Recieve": 120200 - }, - "bytenet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.3558192253112795, - 1.8665226697921754, - 2.3975536823272707, - 2.4173099994659426, - 2.4335269927978517, - 2.4335269927978517 - ], - "DrainDuration": 3.750927599001443, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.3558193481768265, - 1.8665227671389185, - 2.397553807369439, - 2.4173101255384834, - 2.4335271197161747, - 2.4335271197161747 - ] - }, - "packet": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.312589645385742, - 1.8398791551589966, - 2.3718972206115724, - 2.4044816493988039, - 2.433119058609009, - 2.433119058609009 - ], - "DrainDuration": 3.750964612001553, - "Recieve": 120000, - "Sent": 120000, - "Frames": 600, - "NormalizedBandwidth": [ - 2.312589765996691, - 1.8398792511161722, - 2.371897344315652, - 2.404481774802294, - 2.4331191855060565, - 2.4331191855060565 - ] - }, - "blink": { - "Framerate": [ - 60, - 60, - 60, - 60, - 60, - 60 - ], - "Bandwidth": [ - 2.390836715698242, - 1.910537838935852, - 2.447601795196533, - 2.464641571044922, - 2.487464189529419, - 2.487464189529419 - ], - "DrainDuration": 3.683417451000423, - "Recieve": 120200, - "Sent": 120200, - "Frames": 601, - "NormalizedBandwidth": [ - 2.3908368403900939, - 1.9105379385781652, - 2.4476019228489145, - 2.4646416995859967, - 2.487464319260786, - 2.487464319260786 - ] - } - } -} \ No newline at end of file diff --git a/benchmark/src/shared/BenchmarkConfig.luau b/benchmark/src/shared/BenchmarkConfig.luau index 59bc8cc..500198f 100644 --- a/benchmark/src/shared/BenchmarkConfig.luau +++ b/benchmark/src/shared/BenchmarkConfig.luau @@ -1,32 +1,13 @@ --- Select which Satset batching profile the benchmark runner uses. --- These profiles are benchmark controls, not public Satset modes. +-- Satset benchmark control. This is not a public Satset mode. local activeMode = "default" -local modes = { - default = { - batching = { - reliableThreshold = 60000, - maxPacketsPerFrame = 20, - }, - expectsSingleReliableCommit = false, - }, - latency = { - batching = { - reliableThreshold = 0, - maxPacketsPerFrame = 0, - }, - expectsSingleReliableCommit = true, - }, +local batching = { + reliableThreshold = 0, + maxPacketsPerFrame = 0, } -local selectedMode = modes[activeMode] -if not selectedMode then - error(`Unknown benchmark mode: {activeMode}`) -end - return { activeMode = activeMode, - batching = selectedMode.batching, - expectsSingleReliableCommit = selectedMode.expectsSingleReliableCommit, - modes = modes, + batching = batching, + expectsSingleReliableCommit = true, } From c62b2c379fc427fc8fcc2e97ac1e6c2ce75760f7 Mon Sep 17 00:00:00 2001 From: protheeuz Date: Wed, 3 Jun 2026 04:15:46 +0700 Subject: [PATCH 4/4] perf: use single reliable commit by default --- src/Core/Batcher.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Core/Batcher.luau b/src/Core/Batcher.luau index e6186b3..d944998 100644 --- a/src/Core/Batcher.luau +++ b/src/Core/Batcher.luau @@ -13,7 +13,7 @@ local IS_SERVER = RunService:IsServer() -- UnreliableRemoteEvent has a limit around 1000 bytes. -- We cap at 900 to stay safe. -local RELIABLE_SPLIT_THRESHOLD = 60000 +local RELIABLE_SPLIT_THRESHOLD = 0 local UNRELIABLE_SPLIT_THRESHOLD = 900 local MAX_PACKETS_PER_FRAME = 0 -- 0 means no limit (Latency Mode) local INITIAL_WORKING_SIZE = 65536