#BOOLEANS!
Paul, when you tried to subtract 20 cylinders from one object, you were
actually changing the "speaker" object TWENTY TIMES. After each
subtraction, the object became more complex, with much more faces around
the area you had previously subtracted.
If you re-read the documentation about boolean modeling, you'll see that
the density and configuration of the face structure around the area to be
boolean'd is very important to pay attention to. By the 10th cylinder
you'd subtracted, you made your speaker unbelievably complex.
In this case (making the holes in a speaker (or speaker grill?), it sure
sounds like you could've used the lofter tools to loft nested polygons to
created the holes. That would be approximately 1000 times more efficient.
It is certainly not the type of operation we designed booleans to optimally
execute.
– G