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
{{ message }}
Repository navigation
Commit f494c9a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,8 @@ There exist different `project.json` files for different purposes:
18
18
Please use the [issue tracker](https://github.com/Pyseph/PacketProfiler/issues) to report any bugs or file feature requests.
19
19
20
20
## Developing
21
+
22
+
Run `lune run tests/performance.luau` with Lune 0.10.4 to check capture lifecycle, bounded discovery, remote subscription cleanup, and Studio bridge demand. These tests load the source modules with mocked engine signals and instance trees; verify UI behavior and frame times separately in Studio. Run `selene src build` and build both `buildplugin.project.json` and `buildrelease.project.json` with Rojo before release.
21
23
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
Copy file name to clipboardExpand all lines: README.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,8 @@ The rolling timeline uses timestamped 60 Hz buckets, so its 256 bars consistentl
22
22
23
23
The interface is rendered with Vide. The timeline is a mirrored cyclic strip: each commit writes one persistent bar slot and shifts the strip, so existing heights remain untouched until their frames genuinely leave the 256-frame window. This avoids full-chart reconciliation and render-frame polling.
24
24
25
+
Capture runs while either profiler window is open and capture is unpaused. Closing both windows or pausing disconnects capture adapters, remote discovery, and the capture clock; reopening preserves committed frames and starts a fresh capture bucket. Hidden views unmount their contents. The Studio Edit instance does not discover remotes. Play-client remote discovery walks service children incrementally, with at most 256 instances per heartbeat and a 1 ms target budget, without `QueryDescendants` or `GetDescendants`. Existing remotes begin recording as discovery reaches them; newly added remotes connect immediately during capture.
@@ -40,6 +42,8 @@ Requiring the in-game package returns the running profiler. In a Studio client w
40
42
41
43
Layers describe a source of traffic and receive an `Emit` function. The value returned by `Start` is used as the layer's cleanup function.
42
44
45
+
`Start` can run again after capture resumes. Return cleanup that disconnects the adapter's listeners and cancels its background work. Studio-bridged adapters follow capture demand from the Play and Edit windows, and only flush packets when a batch is pending. Update the plugin and in-game package together for bridge protocol version 4.
46
+
43
47
```luau
44
48
local ReplicatedStorage = game:GetService("ReplicatedStorage")
45
49
local PacketProfiler = require(ReplicatedStorage.Packages.PacketProfiler)
0 commit comments