Well, first I want to be really sure that boiling off contaminants are really deleted forever from memory without any dangling references (wonder if Toady use any smart pointers... managing memory manually is pure masochism) and purged from any lists and whatever.
Why? While I can readily agree that contaiments could be less affecting FPS than I believed, I cannot believe this would make no difference at all. It looks like anything that was created in fortress taints FPS forever. Regardless of reason, it cannot be pathfinding alone - if this would be case, then murdered off fortress with 7 dorfs like on beginning would also have FPS like on beginning of game. Obviously, this is not the case.
Something - probably unholy combination of all possible reasons voiced here and elsewhere (from pathfinding to contaminations) - rapes CPU more and more with time.
Exactly! The FPS does not really return to it's former glory, no matter what happens or what you do, depite some people's logic telling us how it should. This implies something is seriously wrong somewhere.
One idea that comes to mind is grouping the path finding to group "leaders" in ambushes and sieges, where path finding is done only to one individual that the rest also "follow" and use to find their way. This is because sieges and ambushes appear now to have a big hit on FPS and if path finding is the problem, being cpu heavy such as it is and not much improvable, then the smart option is to not do so much path finding in the first place, or at least for such long and heavy paths.
Also critters, vermin, etc. should be probably disallowed real path finding altogether and just make them "random walker" types that only consider whether next step is safe or not and randomly pick steps to take. The same with FBs and HFS that are caged in levels with no access. Disallow real path finding to them (degrading them to random walkers) until something changes over, on, or below said levels where they are to make it sensible and allow them access. And even then "grouped" path finding might be better to save the computational costs. Also, maybe some levels should be "disallowed" to be considered in path finding for HFS and surface critters altogether, e.g. Hell and it's pits. Also do dogs, pets and cats need to wander around so much, they could be limited for the sake of performance to be random walkers on one level or only concerned to stay within some range of their owners, who follow his paths.
Right now the game interface also holds dead things eternally and that in it self should speak a lot about how things are done inside. And such things do not speak of smart design or quality, but negligence and laziness, going with minimum work and putting things off until they become a problem.
Anyway, I'm rather sad to be staying off the game just for performance reasons.