Hello
I have realized that inspecting a recursive data structure is very slow in Pharo 4.0 A test case: | myDict | myDict := Dictionary new. myDict at: #hello put: 'hello'. myDict at: #recurHello put: myDict. myDict inspect It takes a long time for the inspector to come up. And the image freezes later on if you continue. The problem is with the inspector because if I do | myDict | myDict := Dictionary new. myDict at: #hello put: 'hello'. myDict at: #recurHello put: myDict. 3 + 4 inspect it comes up instantly. As a comparison I attach the Cuis ** test result. The inspector comes up instantly and the image does not have any problems. What are the workarounds in Pharo 4.0? - Setting a time out somewhere? - Disabling certain functions? - Loading a simpler inspector? Regards Hannes ** current build 2463.image https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev Cuis.2463_recursive_dict_test.png (55K) Download Attachment |
Hi Hannes, Can open a bug report? I though most recursive problems were fixed in the new inspector. Seems that there are still some related to printing recursive structures. You can switch to the previous inspector (GTInspector setGTInspectorEnabledStatus: false), however, this bug seem to also kill that inspector. Cheers, Andrei On Sat, Aug 29, 2015 at 7:16 AM, H. Hirzel <[hidden email]> wrote: Hello |
Andrei,
Thanks for confirming the bug. Report is here https://pharo.fogbugz.com/f/cases/16425/Pharo-4-0-Inspecting-a-recursive-data-structure-is-slow --Hannes On 8/29/15, Andrei Chis <[hidden email]> wrote: > Hi Hannes, > > Can open a bug report? > I though most recursive problems were fixed in the new inspector. > Seems that there are still some related to printing recursive structures. > > You can switch to the previous inspector (GTInspector > setGTInspectorEnabledStatus: false), > however, this bug seem to also kill that inspector. > > Cheers, > Andrei > > On Sat, Aug 29, 2015 at 7:16 AM, H. Hirzel <[hidden email]> wrote: > >> Hello >> >> I have realized that inspecting a recursive data structure is very >> slow in Pharo 4.0 >> >> A test case: >> >> | myDict | >> myDict := Dictionary new. >> myDict at: #hello put: 'hello'. >> myDict at: #recurHello put: myDict. >> myDict inspect >> >> It takes a long time for the inspector to come up. And the image >> freezes later on if you continue. >> >> The problem is with the inspector because if I do >> | myDict | >> myDict := Dictionary new. >> myDict at: #hello put: 'hello'. >> myDict at: #recurHello put: myDict. >> 3 + 4 inspect >> >> it comes up instantly. >> >> >> As a comparison I attach the Cuis ** test result. The inspector comes >> up instantly and the image does not have any problems. >> >> >> What are the workarounds in Pharo 4.0? >> >> - Setting a time out somewhere? >> - Disabling certain functions? >> - Loading a simpler inspector? >> >> Regards >> >> Hannes >> >> >> ** current build 2463.image >> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev >> > |
It seems to be fixed in Pharo5 already. Debugger comes up within less than a second and is usable.
Marcus > On 29 Aug 2015, at 11:57, H. Hirzel <[hidden email]> wrote: > > Andrei, > > Thanks for confirming the bug. > > Report is here > > https://pharo.fogbugz.com/f/cases/16425/Pharo-4-0-Inspecting-a-recursive-data-structure-is-slow > > --Hannes > > On 8/29/15, Andrei Chis <[hidden email]> wrote: >> Hi Hannes, >> >> Can open a bug report? >> I though most recursive problems were fixed in the new inspector. >> Seems that there are still some related to printing recursive structures. >> >> You can switch to the previous inspector (GTInspector >> setGTInspectorEnabledStatus: false), >> however, this bug seem to also kill that inspector. >> >> Cheers, >> Andrei >> >> On Sat, Aug 29, 2015 at 7:16 AM, H. Hirzel <[hidden email]> wrote: >> >>> Hello >>> >>> I have realized that inspecting a recursive data structure is very >>> slow in Pharo 4.0 >>> >>> A test case: >>> >>> | myDict | >>> myDict := Dictionary new. >>> myDict at: #hello put: 'hello'. >>> myDict at: #recurHello put: myDict. >>> myDict inspect >>> >>> It takes a long time for the inspector to come up. And the image >>> freezes later on if you continue. >>> >>> The problem is with the inspector because if I do >>> | myDict | >>> myDict := Dictionary new. >>> myDict at: #hello put: 'hello'. >>> myDict at: #recurHello put: myDict. >>> 3 + 4 inspect >>> >>> it comes up instantly. >>> >>> >>> As a comparison I attach the Cuis ** test result. The inspector comes >>> up instantly and the image does not have any problems. >>> >>> >>> What are the workarounds in Pharo 4.0? >>> >>> - Setting a time out somewhere? >>> - Disabling certain functions? >>> - Loading a simpler inspector? >>> >>> Regards >>> >>> Hannes >>> >>> >>> ** current build 2463.image >>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev >>> >> > |
Was there an issue/fix for this in Pharo 5? It might be worth backporting to Pharo 4. On Sat, Aug 29, 2015 at 12:06 PM, Marcus Denker <[hidden email]> wrote: It seems to be fixed in Pharo5 already. Debugger comes up within less than a second and is usable. |
In reply to this post by Marcus Denker-4
On 8/29/15, Marcus Denker <[hidden email]> wrote:
> It seems to be fixed in Pharo5 already. Debugger comes up within less than a > second and is usable. Very welcome. I assume you mean 'Inspector' (not debugger) > > Marcus >> On 29 Aug 2015, at 11:57, H. Hirzel <[hidden email]> wrote: >> >> Andrei, >> >> Thanks for confirming the bug. >> >> Report is here >> >> >> https://pharo.fogbugz.com/f/cases/16425/Pharo-4-0-Inspecting-a-recursive-data-structure-is-slow >> >> --Hannes >> >> On 8/29/15, Andrei Chis <[hidden email]> wrote: >>> Hi Hannes, >>> >>> Can open a bug report? >>> I though most recursive problems were fixed in the new inspector. >>> Seems that there are still some related to printing recursive >>> structures. >>> >>> You can switch to the previous inspector (GTInspector >>> setGTInspectorEnabledStatus: false), >>> however, this bug seem to also kill that inspector. >>> >>> Cheers, >>> Andrei >>> >>> On Sat, Aug 29, 2015 at 7:16 AM, H. Hirzel <[hidden email]> >>> wrote: >>> >>>> Hello >>>> >>>> I have realized that inspecting a recursive data structure is very >>>> slow in Pharo 4.0 >>>> >>>> A test case: >>>> >>>> | myDict | >>>> myDict := Dictionary new. >>>> myDict at: #hello put: 'hello'. >>>> myDict at: #recurHello put: myDict. >>>> myDict inspect >>>> >>>> It takes a long time for the inspector to come up. And the image >>>> freezes later on if you continue. >>>> >>>> The problem is with the inspector because if I do >>>> | myDict | >>>> myDict := Dictionary new. >>>> myDict at: #hello put: 'hello'. >>>> myDict at: #recurHello put: myDict. >>>> 3 + 4 inspect >>>> >>>> it comes up instantly. >>>> >>>> >>>> As a comparison I attach the Cuis ** test result. The inspector comes >>>> up instantly and the image does not have any problems. >>>> >>>> >>>> What are the workarounds in Pharo 4.0? >>>> >>>> - Setting a time out somewhere? >>>> - Disabling certain functions? >>>> - Loading a simpler inspector? >>>> >>>> Regards >>>> >>>> Hannes >>>> >>>> >>>> ** current build 2463.image >>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev >>>> >>> >> > > > |
In reply to this post by Andrei Chis
On 8/29/15, Andrei Chis <[hidden email]> wrote:
> Was there an issue/fix for this in Pharo 5? > It might be worth backporting to Pharo 4. If it is not a big effort, yes please. > > On Sat, Aug 29, 2015 at 12:06 PM, Marcus Denker <[hidden email]> > wrote: > >> It seems to be fixed in Pharo5 already. Debugger comes up within less >> than >> a second and is usable. >> >> Marcus >> > On 29 Aug 2015, at 11:57, H. Hirzel <[hidden email]> wrote: >> > >> > Andrei, >> > >> > Thanks for confirming the bug. >> > >> > Report is here >> > >> > >> https://pharo.fogbugz.com/f/cases/16425/Pharo-4-0-Inspecting-a-recursive-data-structure-is-slow >> > >> > --Hannes >> > >> > On 8/29/15, Andrei Chis <[hidden email]> wrote: >> >> Hi Hannes, >> >> >> >> Can open a bug report? >> >> I though most recursive problems were fixed in the new inspector. >> >> Seems that there are still some related to printing recursive >> structures. >> >> >> >> You can switch to the previous inspector (GTInspector >> >> setGTInspectorEnabledStatus: false), >> >> however, this bug seem to also kill that inspector. >> >> >> >> Cheers, >> >> Andrei >> >> >> >> On Sat, Aug 29, 2015 at 7:16 AM, H. Hirzel <[hidden email]> >> wrote: >> >> >> >>> Hello >> >>> >> >>> I have realized that inspecting a recursive data structure is very >> >>> slow in Pharo 4.0 >> >>> >> >>> A test case: >> >>> >> >>> | myDict | >> >>> myDict := Dictionary new. >> >>> myDict at: #hello put: 'hello'. >> >>> myDict at: #recurHello put: myDict. >> >>> myDict inspect >> >>> >> >>> It takes a long time for the inspector to come up. And the image >> >>> freezes later on if you continue. >> >>> >> >>> The problem is with the inspector because if I do >> >>> | myDict | >> >>> myDict := Dictionary new. >> >>> myDict at: #hello put: 'hello'. >> >>> myDict at: #recurHello put: myDict. >> >>> 3 + 4 inspect >> >>> >> >>> it comes up instantly. >> >>> >> >>> >> >>> As a comparison I attach the Cuis ** test result. The inspector comes >> >>> up instantly and the image does not have any problems. >> >>> >> >>> >> >>> What are the workarounds in Pharo 4.0? >> >>> >> >>> - Setting a time out somewhere? >> >>> - Disabling certain functions? >> >>> - Loading a simpler inspector? >> >>> >> >>> Regards >> >>> >> >>> Hannes >> >>> >> >>> >> >>> ** current build 2463.image >> >>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev >> >>> >> >> >> > >> >> >> > |
In reply to this post by Hannes Hirzel
> On 29 Aug 2015, at 13:27, H. Hirzel <[hidden email]> wrote: > > On 8/29/15, Marcus Denker <[hidden email]> wrote: >> It seems to be fixed in Pharo5 already. Debugger comes up within less than a >> second and is usable. > > Very welcome. > I assume you mean 'Inspector' (not debugger) > Yes. Marcus |
In reply to this post by Andrei Chis
> On 29 Aug 2015, at 12:58, Andrei Chis <[hidden email]> wrote: > > Was there an issue/fix for this in Pharo 5? > It might be worth backporting to Pharo 4. > Maybe one related to what is printed for the dictionary. It used to be very slow for large collections https://pharo.fogbugz.com/f/cases/15311/The-display-string-for-collection-makes-it-difficult-to-inspect |
As for me no need to hurry. I switch now to Pharo 5 build 50287 in the
meantime. I will continue using that if I do not run into larger problems. --Hannes On 8/29/15, Marcus Denker <[hidden email]> wrote: > >> On 29 Aug 2015, at 12:58, Andrei Chis <[hidden email]> wrote: >> >> Was there an issue/fix for this in Pharo 5? >> It might be worth backporting to Pharo 4. >> > Maybe one related to what is printed for the dictionary. > It used to be very slow for large collections > > https://pharo.fogbugz.com/f/cases/15311/The-display-string-for-collection-makes-it-difficult-to-inspect > |
No this doesn't even fully work for the GTInspector (even not in Pharo 5.0). (http://forum.world.st/Proposal-for-LiteralArray-class-tp4803015.html and http://forum.world.st/Fwd-14827-ProtoObject-pointersTo-failing-circular-references-tp4802576.html) (squeak does this, but the implementation in pharo changed). | myDict | myDict := Dictionary new. myDict at: #hello put: 'hello'. myDict at: #recurHello put: myDict. myDict inspect 2015-08-29 15:16 GMT+02:00 H. Hirzel <[hidden email]>: As for me no need to hurry. I switch now to Pharo 5 build 50287 in the |
Free forum by Nabble | Edit this page |