performance
Complexity
Yes, HSP has a lot of features. It's part of it's unique design compared to other plugins - HSP lets you do things the way YOU want, not the way some plugin designer thought they should be. Chances are that unique edge or configuration you want, HSP can do it.
But what if you just want a "simple" home plugin? Perhaps another plugin seems easier. And by all means, I'm not jealous of users, so if you feel another home/spawn plugin meets your needs better, please use it! (my motivation here is purely selfish: it takes time to support a plugin and I'd rather you ask some other guy for support than me)
However, I do want to debunk that HomeSpawnPlus is too complex to get started. If you just want to trim it down to the basics, that's easy to do as you'll see in just a moment. But with HSP, if your needs change and you decide later you want some other features, those other features are only a configuration option away, rather than a whole plugin swap. HSP will grow nicely with your changing needs.
But maybe you just want to start with home/spawn and have NOTHING else to get started. Easy!
# config.yml commands: disabledCommands: - '*' home: class: Home sethome: class: SetHome spawn: class: Spawn setspawn: class: SetSpawn
Put that as your entire config.yml and you'll get exactly that and nothing more: 4 commands, /home, /sethome, /spawn and /setspawn. Decide later you want homes to be set by beds too? Just add in the option. Decide later you want groupspawns for your groups? Just add in the options.
But what's that you say? You don't have a permission system and the commands aren't working for your non-op players? Well that's easy to fix too:
# config.yml permissions: - ops core: defaultPermissions: - hsp.command.home - hsp.command.sethome - hsp.command.spawn
Just like that, all your players have access to /home, /sethome and /spawn, no permissions system needed. /setspawn isn't listed, so it would only be allowed by ops in this example.
You get the point. HSP has a lot of options, but you can just start simple and build your way up, adding things as your needs grow.
Memory
I've read comments by the occasional uninformed person who looks at HSP and says "it must be bulky" or "it seems too big". Of course they have never actually looked into it to back that opinion up with any facts. It is true that all that flexibility has some cost, but it's not all that much. I downloaded a few other plugins and compared the memory startup footprint to HSP. The popular Vault plugin takes about 3MB, another home plugin takes 7MB, LWC takes 8MB and HSP takes 11MB.
Consider a single player logging into your server is between 50-75MB. So if you run a 20 person server, you're looking at around 1.5GB just in MineCraft chunks alone. 11MB of 1.5GB is a fraction of a percent of your overall memory utilization.
So, yes, if you're running on a tiny server where every single MB counts and you're hoping that by shaving off enough "big" plugins that you can squeeze one extra player on, then HSP may not be for you. For everyone else who isn't scrapping for every last byte of RAM, HSP is an average sized plugin for the features it offers.
CPU
I have done quite a bit of CPU profiling on my average sized server (30 player peak capacity) using Bukkit's profiling features. I was doing the profiling to look for any performance heavy plugins. But the results also show where HSP sits in line with a number of other plugins you might recognize (this is not the full list of plugins, but the relative position of HSP in the middle of all the plugins is consistent)
DispNameChanger 54.50 ms LogOres 57.41 ms iConomy 81.40 ms Heimdall 235.50 ms Honeypot 238.42 ms Multiverse-Core 296.98 ms HomeSpawnPlus 320.06 ms MultiInv 370.94 ms CommandBook 490.39 ms dynmap 490.98 ms VanishNoPacket 646.60 ms ChestShop 722.63 ms HeroChat 1388.72 ms MCDocs 1453.52 ms WorldEdit 1461.91 ms TeleportSuite 2312.94 ms LWC 2547.57 ms LogBlock 5477.65 ms WorldGuard 17316.81 ms Multiverse-Portals 17778.21 ms
This list is in no way meant to be definitive of "plugin cost", these timings can and do change drastically between different runs, different server environments and different usage patterns. In over 20 such timing data I have, HSP sometimes is higher or lower in the list relative to other plugins, but it is never one of my top 5 or 10 plugins that I worry about performance for. Which really is the point of this section; for all of HSP's functionality, it's been intentionally coded to be very frugal with CPU resources.
Comments