Yeah, a more complete layout of the original L-2 is:
P = goods pile
X = up/down stair with stockpile on it
+ = floor with stockpile on it
k = kitchen
b = butcher
t = tannery
f,F = fields
PPPkkkXXfffffff
PPPkkkXXFFFFFFF
PPPkkkXXfffffff
PPPbbbXXFFFFFFF
PPPbbbXXfffffff
PPPbbbXXFFFFFFF
PPPtttXXfffffff
PPPtttXXFFFFFFF
PPPtttXXfffffff
This had good throughput on the n00b turkey test (ntt), but later game lagged something awful. (Something that just occurred to me is that I was not using 0 level cooks or tanners. If the butcher was using bigger creatures, or the cook/tanner couldn't keep up, that would slow things down, no fault of the butcher or the layout.)
Next game I replaced all the X with + and the ntt was a little slower, but much less laggy after 100 or so pop. My hypothesis is with only central stairs, there is no checking for pathing through dead ends.
Next build had 3x3 intermediate stockpiles between the kitchen and butcher and between butcher and tanner. Ntt values best so far. I attribute it to clearing clutter faster. Rather than waiting for the kitchen and tanner to need materials for the next job, the haulers just moved it to SPs.
Then I made those intermediates into stairs down to finished goods piles. Ntt roughly similar. But lots of later lag. My guess, again, is calculating pathing through those intermediate SP/stairs.
Then I tried leaving walls and partial walls between the shops. I've not tried more than 2 walls per shop so far. One between the butcher and tanner, and one between the shops and the +. So I had planned on trying a wall between the k and b first, then walls between all shops, but the more I think on it, the more I'm pretty sure the layout a month back had the shops in an E/W orientation, instead of the N/S orientation I'm using this go around. And that would make a difference. Sigh.
But bear in mind, this isn't comparing apples to apples. These are all live forts with different worlds, default worldgen. They all have had at least one set of caverns pierced, as well as magma brought to surface. All had streams, but some were much larger streams than others. Most have had at least some candy harvested. They are all really close to the same mix of professions. Some had no iron. I'm not sure how to go about testing it properly. Each fort is going to develop differently, if only because of the different caverns and veins of metals. Oh, another think that just occurred to me -- even though the n00b had no skill at butcher, they would all have different attributes. Maybe the only useful information out of all this is how it might affect late game lag...
Pathing through indeterminate SP-downstairs and workshop shouldn't be an issue for touching workshops, but I take it the touching tanner/butcher had both workshops used for north-south pathing too, not surrounded by walls on 3 sides?
I didn't even think about the possibility of guys with no business there pathing THROUGH the workshops. Maybe it doesn't matter if I can't stop the algorithm from checking out the possibility anyway. I don't see the weighting will make any difference in whether it includes that path in the options it calculates, just on whether it is discarded.
For the iSP->, was that place a dead-end room for a drink or did it have an actual, alternate longer path for getting one?
Oh, crap, you are right. If a surface dwarf is stopping on L-3 for food or booze on his way to the dining room, it's the same distance. The same is true for dwarves working below the aquifer with my other variant of putting the dining hall in the sunshine. No wonder adding it made for more late-game lag.
Interesting thought on rampways. Is that "only" to convert 2 moves into 1, or is there another purpose?
That the downstairs into dining hall weren't used as pathway is heartening.
That's a really good point. They were a longer path, and I didn't see them used, but I have no explanation for why they wouldn't have been considered in the pathing algorithm, and thus a source of FPS loss. Maybe because from food/booze to table is a basically straight path of as little as 4 weight 1 tiles on the same level, and the algorithm "knows" not to bother looking for something shorter that spans multiple Z-levels? Pure speculation, knowing as little as I do about the pathing algorithm in the game...