DECLARE Sleep IN WIN32API integer clear lnLen = 1000 el=SET("Eventlist") SET EVENTLIST TO init,Destroy SET EVENTTRACKING TO SYS(2023)+'\track.log' SET EVENTTRACKING ON lnStart=Seconds() loCollection = Createobject("collection") FOR k=1 TO lnLen loCollection.Add(CREATEOBJECT("myException", 15), 'C1_'+TRANSFORM(m.k)) NEXT lnStart=Seconds() loCollection.Remove(-1) ? 'Remove: ', Seconds() - lnStart release loCollection loCollection = Createobject("collection") FOR k=1 TO lnLen loCollection.Add(CREATEOBJECT("myException", 15), 'C2_'+TRANSFORM(m.k)) NEXT lnStart=Seconds() loCollection = Createobject("collection") ? 'Create: ', Seconds() - lnStart release loCollection SET EVENTTRACKING OFF SET EVENTTRACKING TO SET EVENTLIST TO &el MODIFY FILE SYS(2023)+'\track.log' ERASE SYS(2023)+'\track.log' DEFINE CLASS myException as Exception PROTECTED nSleep PROCEDURE init(tnSleep) this.nSleep = IIF(VARTYPE(tnSleep)='N' and tnSleep > 0, tnSleep, 1) ENDPROC PROCEDURE destroy sleep(this.nSleep) ENDPROC ENDDEFINEActually, it apparently it also depends on the object, I ran this with differnt objects