30 FPS with nearly 300 dorfs? You're doing pretty good!
Miasma hasn't created a large amount of FPS drop in my experience. I -think- this is because there's very little math involved in the spread. It simply says "Alright, is the tile to the left a wall? Yes, ignore it. No, add a block of thin miasma in that direction." There's no real pathfinding, same with steam and mist.
What probably is killing your FPS is pathfinding though. DF runs on A* method, which basically compares the distance to the target and the cost of moving through a tile. Depending on fortress layout, this can be extremely detrimental. One way to improve pathfinding is to set traffic designations, which sets the cost of moving through a tile to whatever you decide. Label highly used hallways as High Traffic, particularly areas like the hallway from the bedrooms to the dining hall and trading post. Label lesser paths as normal, like the way to the well or the hospital. Infrequent areas, like the workshop blocks that only require 1 dwarf at a time, or certain stockpiling locations, label as Low Traffic. Exploited mine shafts, the caverns, and the surface should probably be labeled as Restricted/No Traffic - no one should be going here unless they have business there, and they don't have business often, if ever. Sealing off totally unused areas and confining animals can help as well.
Remember that when designating traffic areas, it's not really about if an area is used, but how often dwarves have to walk by the area. Dwarves may walk past the furniture stockpile every day on their way to the great hall, but they never use that stockpile, so give it low traffic rules. And dwarves may use the stonemason's workshop all day every day, but it's only in use by one dwarf at a time, and anyone passing by doesn't need to worry about it, so lower the traffic on those tiles.
This is also how you get dwarves to use hallways instead of cutting through stockpiles and farms on their way to get places. It can reduce your progress speed slightly as they no longer cut corners through rooms, but can improve your FPS and make your drunken midgets appear to act orderly.