Am 19.12.17 um 12:06 schrieb Mariano Martinez Peck:
On Tue, Dec 19, 2017 at 7:40 AM, Andreas Brodbeck <dassi@mindclue.ch> wrote:
Hi Andreas,
Reading the thread nothing obvious comes to my mind. Sorry. My guy feeling is that some of the primitives used by FLLargeIdentityDicitonary become slower in latest VMs. I guess the main one to check is #fuelPointsTo: (primitive 132) (see the senders). Maybe you can do a quick test (isolated from your app) and compare agains old pharo ?
Another thing would be comparing your scenario using a identity set. Just save your image before doing this:
| set dict | set := FLLargeIdentitySet. dict := FLLargeIdentityDictionary. Smalltalk at: #FLLargeIdentitySet put: IdentitySet. Smalltalk at: #FLLargeIdentityDictionary put: IdentityDictionary.
And re-run the serialization.
I tried this interchange of FLLarge* with standard dictionaries, like suggested above by Mariano. The results are astonishing: ************************** 240 seconds with FLLarge* classes 111 seconds with standard Pharo classes ************************** Thats a time reduction by more than 50%! Does this mean that FLLarge* classes are obsolete and can be substituted by standard classes? (At least in the newer Pharos versions) Cheers, Andreas -- Andreas Brodbeck www.mindclue.ch