Skip to content

howmanysmall/Janitor

Repository files navigation

Janitor

Janitor library. This branch is for the thread safe version of Janitor that does not use a global state.

Original was made by Validark, however he doesn't really maintain that version anymore. It does have all the original documentation for it though.

Now on roblox-ts!

Projects that use Janitor

If your project uses Janitor, leave a PR on the readme!

Why use Janitor?

  • Janitor makes dealing with garbage collection much less annoying and stressful because it manages them all in a nice interface.
  • Janitor:Add returns whatever was added, which Maid doesn't.
  • Janitor:Add also accepts a custom method, if you want to call :Stop on a Tween. You can see this being used in the JanitorPromise library.
  • Janitor:Add also accepts a custom reference to store under, which keeps the api more consistent. (Maid.A = X and Maid:GiveTask(Y) vs Janitor:Add(X, nil, "A") and Janitor:Add(Y))
  • Janitor also allows linking to an Instance, so when the Instance is destroyed, the Janitor cleans up everything along with it.

Some less important benefits

  • Runs a little better than Maid does.

Performance

Janitor runs incredibly well. It is quite a bit faster than Maid and around as fast as Dumpster. You can run the benchmark for yourself using boatbomber's benchmark plugin and the bench found here.

Benchmark results

Benchmarks ran on an R9 3900X with 32GB of DDR4-3600 RAM.