Hey,
uhm in Plus/Butterfly there is a few pointless/memory wasting methods. I can't remember a lot as I've done quite a bit on my edit, however I remember these:
- There is a dictionary in the RoomManager for each rooms RoomData, as far as I remember it's never removed, only the value from the LoadedRooms dictionary.
- The emulator caches a users Habbo or the other instance for the players data (I've forgotten which) in several parts of the emulator, and that is also never removed (GetHabboById -method(s) I think).
- The offline messages save up in a dictionary on boot up.
(In addition to that items may fetch the item owner and store their data too and never remove it until you restart the emulator.)
And that's just 3 simple mistakes, so you can expect a ton more in the emulator. Have you tried running with more than 15 online?
If it helps; I have about 1,000 daily peaked and are currently on 4 days, 14 hours uptime w/ 2 GB memory being used by the emulator. (I dispose of the cached users when necessary). But I've never really bothered to monitor the memory usage.
Perhaps you should
profile the emulator and gather some info, Visual Studios is so good for
profiling & debugging. It helped me fix up a ton of issues.