Skip to content

codesenseAye/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.

Which version should you use?

  • If you use Promise, you should take a look at JanitorPromise.
  • If you don't use Promise, you should look at Janitor.
  • If you don't want extra dependencies, use one of the Light libraries.

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.

About

Janitor library.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Lua 100.0%