Rick I don't have the code for the latest version ready to be posted yet, it needs to be packaged up properly. However, I can tell you that the size of the page cache is worked out like this (the page cache is a dictionary<string,string> object, with the first string the alias/pagename, and the second string the rewrite value, ie default.aspx?tabid=34):
sum across portals( portalAlias x tabs).
So if you have 200 portals and 76774 tabs, and each portal has 2 portal aliases, you're looking at a dictionary size of (76774 x 2) = 153548 entries. The average entry size for the dictionary is probably 45 bytes, so right there you're looking at 7 Mb as a best case scenario. In reality it's probably 10-20% bigger than that. And as you have noted, the process of building the cache for the number of pages you're looking at requires some decent working memory.
I do have future plans to cut down the dictionary size by both only building the dictionary for portals as they are requested, rather than all portals as you have noted. I also plan to only keep a copy of the page for a single portal alias, instead of duplicating across portal aliases. This will mean choosing a single,canonical portal alias, but this is good practice anyway. These changes will ultimately mean that the page index will be reduced by at least 50%, and, if built portal-at-atime, reduce the startup. These factors don't show up for single portal installs, but one like you're talking about is showing up these issues. The reason I haven't done this yet is that to do it properly it requires some refactoring of the code so that it deals with portals individually rather than altogether as is currenlty the case. It's designed like this as I originally wrote the provider with a single website in mind, and the scope of the project has grown somewhat since then, but those fundamental design choices are still showing through.
So I think my best advice I can give is that the module might not be suitable for that size install just yet. But I'm happy to work with you in improving performance by concentrating on these aspects. Unfortunately I can't just drop everything and fix these things because of my workload, but over time I will endeavour to address things.
-Bruce