inspector lag on pharo 5.1

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

inspector lag on pharo 5.1

Nicolas Anquetil

In Moose 5.1 (fresh from ci)

I have an average sized model (ArgouML, < 260K entities)

in the playground,:
   model := MooseModel root allModels first. <cmd-I>
takes 10 seconds to open the GT-Inspector

smaller models (14K entities) created form smalltalk or MSE (java) are
instantaneous.

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Nicolas Anquetil

complementing:

the same action without GT-tools (old inspector) is instantaneous

nicolas

(PS: mistake in the title: should be Moose 5.1, not pharo 5.1)

On 11/06/2015 15:18, Nicolas Anquetil wrote:

>
> In Moose 5.1 (fresh from ci)
>
> I have an average sized model (ArgouML, < 260K entities)
>
> in the playground,:
>   model := MooseModel root allModels first. <cmd-I>
> takes 10 seconds to open the GT-Inspector
>
> smaller models (14K entities) created form smalltalk or MSE (java) are
> instantaneous.
>
> nicolas
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Tudor Girba-2
Thanks for reporting.

Here is a screenshot that shows you how to use the inspector to understand the problem:
Inline image 1

Would any of you like to give it a shot to optimize the gtDisplayString?

Cheers,
Doru




On Thu, Jun 11, 2015 at 4:15 PM, Nicolas Anquetil <[hidden email]> wrote:

complementing:

the same action without GT-tools (old inspector) is instantaneous

nicolas

(PS: mistake in the title: should be Moose 5.1, not pharo 5.1)


On 11/06/2015 15:18, Nicolas Anquetil wrote:

In Moose 5.1 (fresh from ci)

I have an average sized model (ArgouML, < 260K entities)

in the playground,:
  model := MooseModel root allModels first. <cmd-I>
takes 10 seconds to open the GT-Inspector

smaller models (14K entities) created form smalltalk or MSE (java) are instantaneous.

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Vincent Blondeau

Hi,

 

There is a lag which is due to the printing of the MooseGroupRuntimeStorage items.

In Collection>>gtDisplayOn:, the stream in argument is not used to print the contents of the collection. So the whole collection is printed whereas only a part of the contents has to be printed.

 

The current implementation is:

“s nextPutAll: ((String streamContents: [ :stream | self printElementsOn: stream ]) truncateWithElipsisTo: 42).”

And it should simply be:

“self printElementsOn: s”

 

In this way, the rendering time is strongly decreased but a longer string is shown.

 

I commited in:

Name: GT-InspectorExtensions-Core-VincentBlondeau.148

Author: VincentBlondeau

Time: 12 June 2015, 11:38:18.508981 pm

UUID: 11bbfc39-1d88-8040-8e9c-204838ecbf1b

Ancestors: GT-InspectorExtensions-Core-AndreiChis.147

 

Cheers,

Vincent

 

 

De : [hidden email] [mailto:[hidden email]] De la part de Tudor Girba
Envoyé : vendredi 12 juin 2015 22:13
À : Moose-related development
Objet : [Moose-dev] Re: inspector lag on pharo 5.1

 

Thanks for reporting.

 

Here is a screenshot that shows you how to use the inspector to understand the problem:

Inline image 1

 

Would any of you like to give it a shot to optimize the gtDisplayString?

 

Cheers,

Doru

 

 

 

 

On Thu, Jun 11, 2015 at 4:15 PM, Nicolas Anquetil <[hidden email]> wrote:


complementing:

the same action without GT-tools (old inspector) is instantaneous

nicolas

(PS: mistake in the title: should be Moose 5.1, not pharo 5.1)



On 11/06/2015 15:18, Nicolas Anquetil wrote:


In Moose 5.1 (fresh from ci)

I have an average sized model (ArgouML, < 260K entities)

in the playground,:
  model := MooseModel root allModels first. <cmd-I>
takes 10 seconds to open the GT-Inspector

smaller models (14K entities) created form smalltalk or MSE (java) are instantaneous.

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



 

--

 

"Every thing has its own flow"


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Stephan Eggermont-3


On 12/06/15 23:40, Vincent BLONDEAU wrote:
There is a lag which is due to the printing of the MooseGroupRuntimeStorage items.

In Collection>>gtDisplayOn:, the stream in argument is not used to print the contents of the collection. So the whole collection is printed whereas only a part of the contents has to be printed.

 

The current implementation is:

“s nextPutAll: ((String streamContents: [ :stream | self printElementsOn: stream ]) truncateWithElipsisTo: 42).”

And it should simply be:

“self printElementsOn: s”


Isn't it faster to use streamContents:limitedTo:45, and then replace the last three characters by dots
without copying the string if the string size is 45?

Stephan


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Vincent Blondeau

 

 

De : [hidden email] [mailto:[hidden email]] De la part de Stephan Eggermont
Envoyé : samedi 13 juin 2015 00:09
À : [hidden email]
Objet : [Moose-dev] Re: inspector lag on pharo 5.1

 

 

On 12/06/15 23:40, Vincent BLONDEAU wrote:

There is a lag which is due to the printing of the MooseGroupRuntimeStorage items.

In Collection>>gtDisplayOn:, the stream in argument is not used to print the contents of the collection. So the whole collection is printed whereas only a part of the contents has to be printed.

 

The current implementation is:

“s nextPutAll: ((String streamContents: [ :stream | self printElementsOn: stream ]) truncateWithElipsisTo: 42).”

And it should simply be:

“self printElementsOn: s”


Isn't it faster to use streamContents:limitedTo:45, and then replace the last three characters by dots
without copying the string if the string size is 45?

In fact, streamContents:limitedTo: is already called just before gtDisplayOn:. So the stream given to this method is already limited (not to 45 but 1000).

Vincent

Stephan


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Tudor Girba-2
Thanks. Now, we still need the trimming in the gtDisplayString. Could you extend the printing to take it into account?

Cheers,
Doru

On Sat, Jun 13, 2015 at 12:25 AM, Vincent BLONDEAU <[hidden email]> wrote:

 

 

De : [hidden email] [mailto:[hidden email]] De la part de Stephan Eggermont
Envoyé : samedi 13 juin 2015 00:09
À : [hidden email]
Objet : [Moose-dev] Re: inspector lag on pharo 5.1

 

 

On 12/06/15 23:40, Vincent BLONDEAU wrote:

There is a lag which is due to the printing of the MooseGroupRuntimeStorage items.

In Collection>>gtDisplayOn:, the stream in argument is not used to print the contents of the collection. So the whole collection is printed whereas only a part of the contents has to be printed.

 

The current implementation is:

“s nextPutAll: ((String streamContents: [ :stream | self printElementsOn: stream ]) truncateWithElipsisTo: 42).”

And it should simply be:

“self printElementsOn: s”


Isn't it faster to use streamContents:limitedTo:45, and then replace the last three characters by dots
without copying the string if the string size is 45?

In fact, streamContents:limitedTo: is already called just before gtDisplayOn:. So the stream given to this method is already limited (not to 45 but 1000).

Vincent

Stephan


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: inspector lag on pharo 5.1

Vincent Blondeau

The limitation of the elements printing is currently given by gtDisplayString through the method streamContents:limitedTo:. It is limited to 1000.

 

So the required length for the printing is set by gtDisplayString through the limitation.

 

Cheers,

Vincent

 

De : [hidden email] [mailto:[hidden email]] De la part de Tudor Girba
Envoyé : samedi 13 juin 2015 14:52
À : Moose-related development
Objet : [Moose-dev] Re: inspector lag on pharo 5.1

 

Thanks. Now, we still need the trimming in the gtDisplayString. Could you extend the printing to take it into account?

 

Cheers,

Doru

 

On Sat, Jun 13, 2015 at 12:25 AM, Vincent BLONDEAU <[hidden email]> wrote:

 

 

De : [hidden email] [mailto:[hidden email]] De la part de Stephan Eggermont
Envoyé : samedi 13 juin 2015 00:09
À : [hidden email]
Objet : [Moose-dev] Re: inspector lag on pharo 5.1

 

 

On 12/06/15 23:40, Vincent BLONDEAU wrote:

There is a lag which is due to the printing of the MooseGroupRuntimeStorage items.

In Collection>>gtDisplayOn:, the stream in argument is not used to print the contents of the collection. So the whole collection is printed whereas only a part of the contents has to be printed.

 

The current implementation is:

“s nextPutAll: ((String streamContents: [ :stream | self printElementsOn: stream ]) truncateWithElipsisTo: 42).”

And it should simply be:

“self printElementsOn: s”


Isn't it faster to use streamContents:limitedTo:45, and then replace the last three characters by dots
without copying the string if the string size is 45?

In fact, streamContents:limitedTo: is already called just before gtDisplayOn:. So the stream given to this method is already limited (not to 45 but 1000).

Vincent

Stephan


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



 

--

 

"Every thing has its own flow"


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev