My 2c worth ... speed is one thing, and development time is another and other things.
1. If a dataset (broadly speaking) can deliver similar results to using a map, I would likely defer to the dataset. I am guessing that at some point in time, the data in the map would have to get written to disk?
2. How much data is actually involved? And if you were to load from a dataset, how long would it take to load? If small, then I would certainly go down the memory route.
3, If calculation are made as a result of a update (or insert?) then perhaps more of an OO approach is better.
that's off the top of my head, but are the first things I look at before writing any code. Hope that helps.
-- Tim