You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+77-72Lines changed: 77 additions & 72 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -486,7 +486,7 @@ Disabled by default. Zero overhead when off. Enable via `Lync.configure({ stats
486
486
487
487
## Benchmarks
488
488
489
-
Run `rojo serve bench.project.json`, open in Studio with one local server + one client. The suite has 7 sections. Fill in the `—` placeholders after running the bench on your hardware.
489
+
Run `rojo serve bench.project.json`, open in Studio with one local server + one client.
490
490
491
491
See `bench/Run.server.luau` for full configuration and methodology.
492
492
@@ -496,107 +496,107 @@ Exact byte count per codec write. Raw payload only — no batch framing overhead
Byte cost across three consecutive writes: initial (full), identical repeat (unchanged), and single-field mutation (changed).
560
560
561
561
| Codec | Full | Unchanged | Changed | Savings |
562
562
|:------|-----:|----------:|--------:|--------:|
563
-
|`deltaStruct` (entity) |—|—|—|—|
564
-
|`deltaStruct` (compact) |—|—|—|—|
565
-
|`deltaArray` (100× entity) |—|—|—|—|
566
-
|`deltaArray` (1000× bool) |—|—|—|—|
567
-
|`deltaMap` (string → u8) |—|—|—|—|
563
+
|`deltaStruct` (entity) |35B|1B|35B|97%|
564
+
|`deltaStruct` (compact) |14B|1B|14B|93%|
565
+
|`deltaArray` (100× entity) |602B|1B|1B|100%|
566
+
|`deltaArray` (1000× bool) |128B|1B|1B|99%|
567
+
|`deltaMap` (string → u8) |19B|1B|19B|95%|
568
568
569
569
### Batch Framing
570
570
571
571
MSB single-item batches use a 1-byte header. Multi-item batches add a u16 count after the header.
572
572
573
573
| Scenario | Total bytes | Per-item overhead |
574
574
|:---------|----------:|------------------:|
575
-
| 1 × u8 (single-item) |—|—|
576
-
| 10 × u8 (multi-item) |—|—|
575
+
| 1 × u8 (single-item) |2B|1B|
576
+
| 10 × u8 (multi-item) |13B|0.3B|
577
577
578
578
### Network Throughput
579
579
580
580
Live sends to one player. Measured over 8 seconds. FPS and Kbps at median and tail.
581
581
582
582
| Packet | Fires/frame | FPS median | FPS p1 | Kbps median | Kbps p95 | Kbps p99 |
583
583
|:-------|:---:|----:|----:|-----:|-----:|-----:|
584
-
| booleans | 1000 |—|—|—|—|—|
585
-
| entity struct | 1000 |—|—|—|—|—|
586
-
| entity compact | 1000 |—|—|—|—|—|
587
-
| 100× entities | 100 |—|—|—|—|—|
588
-
| 1000× bools | 100 |—|—|—|—|—|
589
-
| bitfield flags | 1000 |—|—|—|—|—|
590
-
| cframe lossless | 1000 |—|—|—|—|—|
591
-
| cframe compressed | 1000 |—|—|—|—|—|
584
+
| booleans | 1000 |60|59.9|2.5|6.2|6.2|
585
+
| entity struct | 1000 |60|59.9|2.3|2.4|2.4|
586
+
| entity compact | 1000 |60|59.9|2.4|2.5|2.5|
587
+
| 100× entities | 100 |60|59.9|2.3|3.1|3.1|
588
+
| 1000× bools | 100 |60|59.9|2.3|2.3|2.3|
589
+
| bitfield flags | 1000 |60|59.9|2.4|2.5|2.5|
590
+
| cframe lossless | 1000 |60|59.9|2.5|2.5|2.5|
591
+
| cframe compressed | 1000 |60|59.8|2.3|2.3|2.3|
592
592
593
593
---
594
594
595
595
### Cross-Library Comparison
596
596
597
597
The tables below use the same data shapes and methodology as [Blink's published benchmarks](https://github.com/1Axen/blink/blob/main/benchmark/Benchmarks.md): 1,000 fires/frame, same data every frame, 10 seconds, Kbps scaled by 60/FPS.
598
598
599
-
Numbers for `blink`, `zap`, `bytenet`, and `roblox` are copied directly from [Blink v0.17.1 results](https://github.com/1Axen/blink/blob/main/benchmark/Benchmarks.md) (2025-04-30). Fill in Lync numbers by running Section 7 of `bench/Run.server.luau` on the same hardware.
599
+
Numbers for `blink`, `zap`, `bytenet`, and `roblox` are copied directly from [Blink v0.17.1 results](https://github.com/1Axen/blink/blob/main/benchmark/Benchmarks.md) (2025-04-30).
600
600
601
601
> [!NOTE]
602
602
> **Architectural differences that affect these numbers:**
@@ -616,42 +616,47 @@ Numbers for `blink`, `zap`, `bytenet`, and `roblox` are copied directly from [Bl
616
616
| Tool | Median | P0 | P80 | P90 | P95 | P100 | Loss |
0 commit comments