MATLAB saving methods: when are different techniques appropriate?

Historically, I've typically used the standard save function. When the workspace is particularly cluttered, I've occasionally tossed in the optional variable name parameters to clean things up.

I've come across a number of other methods for saving (like using the standard save but with the additional parameters for version and compression). There is also HDF5write and external wrappers like savefast. I've had some luck speeding up saving large variables by first serializing them.

Is there a professional standard for which read and write methods are recommended? Are there any heuristics for picking the most appropriate technique?