[Xtext] clustering Xtext builder [message #636378] |
Sun, 31 October 2010 21:06 |
Eclipse User |
|
|
|
Originally posted by: koester.matthias.gmx.de
Hi,
During my work on my xtext based clojure IDE I stumbled across
Sebastians Blog at
http://zarnekow.blogspot.com/2010/08/how-to-reduce-memory-co nsumption-of.html
Since I'm using Xtext 1.0.1 for my IDE I tried to apply his suggestion
to my code. Most java application I know of will have an improved
performance when the memory requirement is decreased, because the GC
spends less cycles. But my current impression is that the clustering
builder doesn't improve the performance of my IDE. Of course I will
investigate this further, but nevertheless can you give me more
information about the benefits and\or trade-offs when using the
clustering builder?
BTW: I'm really impressed by your work! It's really fun to use Xtext!
Even if not everything is documented (altough the provided documentation
is already very good;-), most of the time a look on either the code or
on one of your blogs helps to understand more. Especially compared with
DLTK - which I tried to use before - it's much easier and faster to
create an IDE with Xtext. At least for a EMF and modeling guy like me
;-) Keep up the good work!
Best reagrds,
Matthias
|
|
|
|
Re: [Xtext] clustering Xtext builder [message #636545 is a reply to message #636426] |
Mon, 01 November 2010 19:35 |
Eclipse User |
|
|
|
Originally posted by: koester.matthias.gmx.de
Hi Sebastian,
Ok, I understand... Looks like you "reinvented" (or rediscovered? Best
wishes to Jan K.;-) an EMF scaleability pattern that we already applied
to Apollo for UML 5 years ago - for the same use case ;-)
So I'm really curious to learn more: Does that mean that the builder
also builds an index of all outgoing external crossreferences? Or why do
you have to load\resolve referenced resources\elements?
If that is the case: did you consider to use the qualified name of a
cross reference fragment to build an index of cross references? To avoid
resolving all cross references and so only have to load the resource you
want to index.
This could improve the perforamnce and memory consumption even further.
But of course that would only be possible if I'm exclusively using Xtext
resources (I guess Xtext uses qualified name for URIs as default -
right?) or implement such a fragment schema for all my resources. What
do you think about it?
BTW, I plan to give a short talk about my experinces with Xtext at the
Berlin DemoCamp on 7. December.
Best regards,
Matthias
Sebastian Zarnekow schrieb:
> Hi Matthias,
>
> thanks for the nice words.
>
> The clustering builder will load resources more than once while the
> default implementation requires only one load operation. That's why
> you'll have actually more garbage collection operations because we
> actively release memory by removing processed resources from the
> resource set (to actually reload them for the next building operation).
>
> Does this answer your question?
>
> Regards,
> Sebastian
|
|
|
Re: [Xtext] clustering Xtext builder [message #637407 is a reply to message #636545] |
Fri, 05 November 2010 12:05 |
Jan Koehnlein Messages: 760 Registered: July 2009 Location: Hamburg |
Senior Member |
|
|
Hi Matthias,
it's all there: The XtextBuilder builds an index of the model resources
that does not only describe referrable resources therein (with fully
qualified names) but also all names that were resolved as references to
elements in other reosurces. Therefore we can selectively rebuild (load,
link and validate) only the minimum set of affected resources on change.
Have a look at the section on scoping in the Xtext docs as a primer for
our index structure.
Regards
Jan
Am 01.11.10 20:35, schrieb Matthias Köster:
> Hi Sebastian,
>
> Ok, I understand... Looks like you "reinvented" (or rediscovered? Best
> wishes to Jan K.;-) an EMF scaleability pattern that we already applied
> to Apollo for UML 5 years ago - for the same use case ;-)
>
> So I'm really curious to learn more: Does that mean that the builder
> also builds an index of all outgoing external crossreferences? Or why do
> you have to load\resolve referenced resources\elements?
>
> If that is the case: did you consider to use the qualified name of a
> cross reference fragment to build an index of cross references? To avoid
> resolving all cross references and so only have to load the resource you
> want to index.
> This could improve the perforamnce and memory consumption even further.
> But of course that would only be possible if I'm exclusively using Xtext
> resources (I guess Xtext uses qualified name for URIs as default -
> right?) or implement such a fragment schema for all my resources. What
> do you think about it?
>
> BTW, I plan to give a short talk about my experinces with Xtext at the
> Berlin DemoCamp on 7. December.
>
> Best regards,
> Matthias
>
> Sebastian Zarnekow schrieb:
>> Hi Matthias,
>>
>> thanks for the nice words.
>>
>> The clustering builder will load resources more than once while the
>> default implementation requires only one load operation. That's why
>> you'll have actually more garbage collection operations because we
>> actively release memory by removing processed resources from the
>> resource set (to actually reload them for the next building operation).
>>
>> Does this answer your question?
>>
>> Regards,
>> Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com
---
Get professional support from the Xtext committers at www.typefox.io
|
|
|
Powered by
FUDForum. Page generated in 0.03434 seconds