And at the same time, an increase in unnecessary memory usage. In the end, your system's performance will drop (insignificantly, of course, but it's still a drop due to increased memory usage) for the entire time the script is running just to gain a once-in-a-great-while insignificant performance increase in the script.

It's miniscule from the standpoint of the system and the script. What's a few milliseconds difference in a script that's called once every few hours or even days on average? There's not point wasting memory over something like that.

Invision is like that... it has a lot of hash tables that are nothing but settings that are checked rarely. It causes Invision to take 3-5% CPU resources instead of mIRC's typical 0%. That's something I need to work on... replacing many of the hash tables with normal settings file reads/writes.

Hash tables should be used when they can improve performance on items that run regularly. For things that run very rarely, hash tables are a waste of resources unless you're going to unload them after use. And I'm sure that loading the table, checking it, then unloading it will take longer than just reading a settings or quote file once every few hours or few days.

Invision Support
#Invision on