They are all valid approaches, and the memory used will be similar assuming the resolution of the masks is the same.
The Circle SOP and Ramp TOP method allow for adjustments and animation, so there’s a bit of an advantage. Ramp TOP allows you to directly adjust the opacity, where as the Circle SOP > OP Viewer TOP would require a Level TOP added to the mix to do that.
When using the Ramp TOP, to get perfectly crisp edges remember you can go into the docked DAT (ie. ramp1_keys) and precisely edit the position of the tabs in the ramp which are the numbers in the first column. You can also animate the values in the ramp table to bring your ramps to life, use expressions.