Speeding up size functions

I am meshing some rather complicated geometry, and I need size functions everywhere. These size functions sometimes take many minutes to compute - so if something is not working, I have to redo everything.

What determines how long a size function will run? Computing power or the size function parameters?

Lots of things... the complexity of the geometry, the number of sizing functions, the types of sizing functions, the extent of the region of the sizing function, and the computing power. As a general rule, 'fixed' sizing functions are the fastest, and 'curvature' sizing functions are the slowest, with the 'meshed' and 'proximity' coming in the middle. The best way of speeding up the sizing functions (that I've found) is to split your geometry into smaller regions. That way the sizing function is only acting on a part of the volume, and doesn't have to grow from a very small size at the surface to a very large size at the boundaries. Then, only work on one volume at a time. Start with the volume that has the smallest mesh or slowest growth rates. Use the 'meshed' sizing functions to link the mesh on the volume you've just done onto the volume you're about to do. It may or may not take longer overall, but the benefit is that if there's a problem, you only have to redo the local volume.