On 05.08.2009, at 12:30, Igor Stasenko wrote:
2009/8/5 Marcus Denker <denker@acm.org>:
On 05.08.2009, at 12:00, Stéphane Ducasse wrote:
I did that in pharo 211 and it worked.
Yes, that was before closures.
MethodContext allInstances size 2309
with the blockClosures, creation of method contexts happes far more frequently than it used to. (as both closures and methods use the same context objects)
It of course could be a sign that it happens actually too much.
Hmm, if that so, then we would expect to see an interpreter speed degradation. But its not. :)
Yes, see the other mail. The reason is that the allocation of contexts in case of blocks happens now at #value, whereas it used to be just done at the definiton point (#blockCopy). So nothing to worry about.
I think it is correct behavior, that you can't get #allInstances of class when you creating them in a loop which serves to collect them all. The solution would be to collect #allInstances primitively (by a single primitive call), then there is no chance that anything happen with object memory during memory scan by primitive.
Yes, and the real solution of course is to change the VM to allocate less contexts and use the C-stack instead... Marcus
Marcus
-- Marcus Denker - http://marcusdenker.de PLEIAD Lab - Computer Science Department (DCC) - University of Chile
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project