Conclusions so far:
1. Ignoring traders causes permanent FPS drop.
-what if they're never allowed on the map with raised drawbridges?
2. Having many many items and then atomsmashing them causes permanent FPS drop.
-what about magma disposal? I have a feeling that dropping 30,000 goblets down a volcano or flooding the chamber with magma will do something.
3. Trying to limit dwarf pathing with raised drawbridges or doors just makes it worse.
-what about constructed walls, obsidian or cave-ins blocking pathing?
1 is not true, per se. Blocking traders causes
temporary FPS drop for as long as they are blocked.
Being as creatures can exist off the borders of the map, and may exist there permanently, and take up FPS for being there, blocking them off the edges of the map may cause more problems than it solves.
2 is still under testing. My FPS has climbed back up to 120 while smashing is going on, but that's because my goblet total dropped to 8000. It may be the effects are more subtle than I at-first thought.
I have not done anything to support conclusion 3. There is a
very notable lag every time the drawbridge goes up and down. My FPS goes up 50% whenever my lever-puller goes on break. So, that's going from 80 to 120 from that alone.
I have completely walled in the drawbridge, so there is nothing that can path to the drawbridge unless you are flying in the dumping pit. It doesn't matter, it's still causing lag.
I presume this means that every time the bridge raises or lowers, it has to recalculate the entire connectivity chart of the whole map, regardless of whether or not things like caverns have never been breached. There have been talks before about saving connectivity charts with bridges up and down before to save processor time, and this seems to support it.
so maybe its like uninstalling programs in that you leave lots of 'blank' data behind? insignificant in a single instance but cumulative over time?
I think it might be more to do with the arrays in the vector being generated, but never sorted - merely eliminated when the whole array becomes empty, but when, if a single goblet's pointer remains in that array, the array remains behind.