As Stefan_Salewski wrote,

> When you delete reference objects, the object itself where the references 
> pointed to has to be deleted too, at least when there is no other reference 
> to it to keep it alive. And that delete costs time too, generally alloc() and 
> dealloc() calls are expensive.

This is almost surely the reason. You can verify that by making another copy of 
the ref "buff" before starting the deletion, so something still holds the 
references. Also, you're likely to find big differences if you measure gc:arc, 
gc:boehm or the old mark&sweep.

Reply via email to