[Vm-dev] Re: Limit of the #become:
Mariano Martinez Peck
marianopeck at gmail.com
Wed Apr 4 15:55:23 UTC 2012
On Wed, Apr 4, 2012 at 5:32 PM, Mariano Martinez Peck <marianopeck at gmail.com
> Hi guys. I noticed that there is a limit in the number of objects you can
> become. In my case, I am becoming 2312157 objects. So..I don't expect that
> the become works. I imagine that it was not designed for so many objects in
> mind ;)
> However, what I would really understand is where is the limitation and the
> reason. And of course, if someone already knows which is the real number
> limit. Otherwise, I will do a kind of binary search and discover it.
> If you want to reproduce it:
> | dict |
> dict := Dictionary new.
> 2312157 timesRepeat: [ dict at: Object new put: Object new ].
> 3 timesRepeat: [Smalltalk garbageCollect].
> dict keys elementsForwardIdentityTo: dict values.
> throws a #primitiveFailed.
Of course the following works correctly:
| dict tmp |
dict := Dictionary new.
2312157 timesRepeat: [dict at: Object new put: Object new].
3 timesRepeat: [Smalltalk garbageCollect].
dict associations groupsOf: 50000 atATimeDo: [:each |
tmp := Dictionary withAll: each.
tmp keys elementsForwardIdentityTo: tmp values
So... indeed, there seems to be a limit with the amount of objects.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev