I've never been interested in calculating digits (3.141592653589793238462643383279502 is all most scientists even need), but you're right, figuring out the process is the interesting part. As for 377 or so digits using up all of the RAM (actually, that was a while ago, and I believe that grew a bit since that update), that just shows you how much the numbers and digits grow with this algorithm. Perhaps your spigot algorithm set to calculate max digits, but truncated at the asked amount of digits, would be the fastest and most efficient solution. I might actually get to doing that, if you don't mind.

EDIT: Just tried, and apparently the more digits you want to calculate, the longer it takes to initialize and go through one iteration. Maybe calculating the max and truncating is not the best idea for a general solution

I've actually even made a phi calculator using the same idea, except it calculates a square root digit by digit, and it's blazing fast compared to the pi calculator. I believe I can let it go on for more digits, too. I wonder if I should release it...

EDIT: Just tried, and apparently the more digits you want to calculate, the longer it takes to initialize and go through one iteration. Maybe calculating the max and truncating is not the best idea for a general solution

I've actually even made a phi calculator using the same idea, except it calculates a square root digit by digit, and it's blazing fast compared to the pi calculator. I believe I can let it go on for more digits, too. I wonder if I should release it...