Hello I stumbled across a performance issue when pinning objects in memory. Below I have two scripts that pin and unpin a byte array (or any object) 20k times.
The first script pins each time a new byte array: > [ 20000 timesRepeat: [ > | array wasPinned | > array := ByteArray new. > wasPinned := array pinInMemory. > array setPinnedInMemory: wasPinned. > ] ] timeToRunWithoutGC. *"4284"* while the second one pins the same instance of array: > array := ByteArray new. > [ 20000 timesRepeat: [ > | wasPinned | > wasPinned := array pinInMemory. > array setPinnedInMemory: wasPinned. > ] ] timeToRunWithoutGC "*12*" However, as you can see there is a huge performance difference between these scripts. Is it expected or is it a bug? And if it is expected what can be happening in VM that leads to such huge performance impact? Thanks! Cheers, Alex