Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » Potential performance problem in Xtext
Potential performance problem in Xtext [message #872810] Wed, 16 May 2012 21:40 Go to next message
Alex Ruiz is currently offline Alex RuizFriend
Messages: 103
Registered: March 2011
Senior Member
Greetings,

I think we might have found a performance problem in Xtext. Context below:

Since Eclipse projects at Google are typically huge (e.g. thousands of source files and thousands of jar files in the classpath) any performance issue in Eclipse considered minor in the outside world gets amplified greatly in our projects. In order to find and fix any performance problems perceived by our users, we log delays on the UI thread. One of the delays we found points to Xtext.

Here is the stack trace from our logging:

java.util.zip.ZipFile.<init>(ZipFile.java:131)
 java.util.jar.JarFile.<init>(JarFile.java:150)
 java.util.jar.JarFile.<init>(JarFile.java:114)
 org.eclipse.xtext.ui.resource.XtextResourceSetProvider.computePlatformURIMap(XtextResourceSetProvider.java:68)
 org.eclipse.xtext.ui.resource.XtextResourceSetProvider.get(XtextResourceSetProvider.java:49)
 org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.getResourceSet(ResourceForIEditorInputFactory.java:89)
 org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.getResourceSet(JavaClassPathResourceForIEditorInputFactory.java:59)
 org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResourceFor(ResourceForIEditorInputFactory.java:68)
 org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:64)
 org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.createResource(JavaClassPathResourceForIEditorInputFactory.java:37)
 org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:53)
 org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.setDocumentContent(XtextDocumentProvider.java:118)
 org.eclipse.ui.editors.text.StorageDocumentProvider.createDocument(StorageDocumentProvider.java:229)
 org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createDocument(XtextDocumentProvider.java:88)
 com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createDocument(ProtobufDocumentProvider.java:74)
 org.eclipse.ui.editors.text.FileDocumentProvider.createElementInfo(FileDocumentProvider.java:735)
 org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createElementInfo(XtextDocumentProvider.java:153)
 com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createElementInfo(ProtobufDocumentProvider.java:47)
 org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)
 org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4213)
 org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
 org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1451)
 org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169)
 org.eclipse.xtext.ui.editor.XtextEditor.doSetInput(XtextEditor.java:215)
 org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3200)
 org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
 org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
 org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
 org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
 org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
 org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642)
 org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3218)
 org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3245)
 org.eclipse.xtext.ui.editor.XtextEditor.init(XtextEditor.java:236)
 org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
 org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
 org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
 org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
 org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
 org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
 org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
 org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
 org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
 org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
 org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
 org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
 org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)
 org.eclipse.ui.internal.ide.EditorAreaDropAdapter.openNonExternalEditor(EditorAreaDropAdapter.java:277)
 org.eclipse.ui.internal.ide.EditorAreaDropAdapter.asyncDrop(EditorAreaDropAdapter.java:99)
 org.eclipse.ui.internal.ide.EditorAreaDropAdapter.access$0(EditorAreaDropAdapter.java:87)
 org.eclipse.ui.internal.ide.EditorAreaDropAdapter$1.run(EditorAreaDropAdapter.java:81)
 org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
 org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
 org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)


(Please ignore the "ProtobufDocumentProvider.createDocument" line, it is just delegating to super)

According to our logs, the call to XtextResourceSetProvider.computePlatformURIMap(IJavaProject) takes a minute. It may not sound like too much but have found other delays and when they all add up, it is a major annoyance to our users.

I've been reading Xtext code, and I fail to get the big picture here. I have some questions:

1. Why Xtext has too read jar files in the project's classpath?
2. Does it have to it every time a XtextDocument is created, or can it be cached somehow?

Many thanks in advance,
-Alex
Re: Potential performance problem in Xtext [message #873434 is a reply to message #872810] Fri, 18 May 2012 08:19 Go to previous messageGo to next message
Sebastian Zarnekow is currently offline Sebastian ZarnekowFriend
Messages: 3118
Registered: July 2009
Senior Member
Hi Alex,

Xtext tries to provide a more reasonable mapping for platform:/resource
uris than EMF does by default. What we do is basically a mapping of the
target platform to the platform:/resource scheme and platform:/plugin
schemes compared to the installed plugins which are explored by the EMF
default mapping algorithm. Therefore we have to look into the Manifest
files on the classpath of the projects. This information is save to be
cached as long as the classpath does not change. I think the best way to
cache that would be the information about the plugin-id per JAR file
path. This would allow all projects that use the same or similar deps to
use the plugin-id directly. Each JAR file would havce to be inspected
once and only once.

Does that make sense to you? Could you please provide a patch that
addresses the issue?

Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com

Am 16.05.12 23:40, schrieb Alex Ruiz:
> Greetings,
>
> I think we might have found a performance problem in Xtext. Context below:
>
> Since Eclipse projects at Google are typically huge (e.g. thousands of
> source files and thousands of jar files in the classpath) any
> performance issue in Eclipse considered minor in the outside world gets
> amplified greatly in our projects. In order to find and fix any
> performance problems perceived by our users, we log delays on the UI
> thread. One of the delays we found points to Xtext.
>
> Here is the stack trace from our logging:
>
>
> java.util.zip.ZipFile.<init>(ZipFile.java:131)
> java.util.jar.JarFile.<init>(JarFile.java:150)
> java.util.jar.JarFile.<init>(JarFile.java:114)
> org.eclipse.xtext.ui.resource.XtextResourceSetProvider.computePlatformURIMap(XtextResourceSetProvider.java:68)
>
> org.eclipse.xtext.ui.resource.XtextResourceSetProvider.get(XtextResourceSetProvider.java:49)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.getResourceSet(ResourceForIEditorInputFactory.java:89)
>
> org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.getResourceSet(JavaClassPathResourceForIEditorInputFactory.java:59)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResourceFor(ResourceForIEditorInputFactory.java:68)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:64)
>
> org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.createResource(JavaClassPathResourceForIEditorInputFactory.java:37)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:53)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.setDocumentContent(XtextDocumentProvider.java:118)
>
> org.eclipse.ui.editors.text.StorageDocumentProvider.createDocument(StorageDocumentProvider.java:229)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createDocument(XtextDocumentProvider.java:88)
>
> com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createDocument(ProtobufDocumentProvider.java:74)
>
> org.eclipse.ui.editors.text.FileDocumentProvider.createElementInfo(FileDocumentProvider.java:735)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createElementInfo(XtextDocumentProvider.java:153)
>
> com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createElementInfo(ProtobufDocumentProvider.java:47)
>
> org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)
>
> org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4213)
>
> org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
>
> org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1451)
>
> org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169)
> org.eclipse.xtext.ui.editor.XtextEditor.doSetInput(XtextEditor.java:215)
> org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3200)
>
> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
>
> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
> org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
>
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
> org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642)
> org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3218)
>
> org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3245)
>
> org.eclipse.xtext.ui.editor.XtextEditor.init(XtextEditor.java:236)
> org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
> org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
>
> org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
>
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
>
> org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
>
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
>
> org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
> org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.openNonExternalEditor(EditorAreaDropAdapter.java:277)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.asyncDrop(EditorAreaDropAdapter.java:99)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.access$0(EditorAreaDropAdapter.java:87)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter$1.run(EditorAreaDropAdapter.java:81)
>
> org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
>
> org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)
>
>
> (Please ignore the "ProtobufDocumentProvider.createDocument" line, it is
> just delegating to super)
>
> According to our logs, the call to
> XtextResourceSetProvider.computePlatformURIMap(IJavaProject) takes a
> minute. It may not sound like too much but have found other delays and
> when they all add up, it is a major annoyance to our users.
> I've been reading Xtext code, and I fail to get the big picture here. I
> have some questions:
>
> 1. Why Xtext has too read jar files in the project's classpath?
> 2. Does it have to it every time a XtextDocument is created, or can it
> be cached somehow?
>
> Many thanks in advance,
> -Alex
Re: Potential performance problem in Xtext [message #873461 is a reply to message #872810] Fri, 18 May 2012 09:29 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 7655
Registered: July 2009
Senior Member
Hi Alex

EMF via extension points does a good job of making registered models
available to applications. Compiled Java models are easy, interactive
models require a bit more skill, but it works.

Many Eclipse users find considerable difficulties in a standalone
environment for which all the extension point functionality is missing.

itemis provided a nice, but IMHO partial, solution to this in MWE2's
StandaloneSetup by scanning the classpath for .project and MANIFEST.MF
files to populate platform:/resource mappings. Inspired by this, OCL's
StandaloneProjectMap does a similar scan but also looking at plugin.xml
and any referenced *.genmodel so that registered packages and
platform:/plugin are also URI-mapped.

These approaches are user friendly; try to provide everything so that
the one or two declarations actually required are available. As you've
observed, they scale poorly, unless you take very tight control over the
classpath. But re-using the classpath that is configured for Java
package location for model location is inefficient; perhaps 10%, perhaps
just 1% of classpath entries are model-providing.

org.eclipse.ocl.examples.domain.utilities.StandaloneProjectMap is
shareable, but currently has no classpath monitoring, so it can go
stale. You can override getProjectDescriptors() or scanClassPath() to
eliminate the 90% or even 99% of plugins that you know to be
non-model-providing.

Or you can reuse the registration technology to manually install only
those entries that you know to be useful.

Perhaps you can evolve the MWE2, Xtext, OCL ideas so that
https://bugs.eclipse.org/bugs/show_bug.cgi?id=361063 matures into a
generally useful EMF facility.

Regards

Ed Willink

On 16/05/2012 22:40, Alex Ruiz wrote:
> Greetings,
>
> I think we might have found a performance problem in Xtext. Context
> below:
>
> Since Eclipse projects at Google are typically huge (e.g. thousands of
> source files and thousands of jar files in the classpath) any
> performance issue in Eclipse considered minor in the outside world
> gets amplified greatly in our projects. In order to find and fix any
> performance problems perceived by our users, we log delays on the UI
> thread. One of the delays we found points to Xtext.
>
> Here is the stack trace from our logging:
>
>
> java.util.zip.ZipFile.<init>(ZipFile.java:131)
> java.util.jar.JarFile.<init>(JarFile.java:150)
> java.util.jar.JarFile.<init>(JarFile.java:114)
> org.eclipse.xtext.ui.resource.XtextResourceSetProvider.computePlatformURIMap(XtextResourceSetProvider.java:68)
>
> org.eclipse.xtext.ui.resource.XtextResourceSetProvider.get(XtextResourceSetProvider.java:49)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.getResourceSet(ResourceForIEditorInputFactory.java:89)
>
> org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.getResourceSet(JavaClassPathResourceForIEditorInputFactory.java:59)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResourceFor(ResourceForIEditorInputFactory.java:68)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:64)
>
> org.eclipse.xtext.ui.editor.model.JavaClassPathResourceForIEditorInputFactory.createResource(JavaClassPathResourceForIEditorInputFactory.java:37)
>
> org.eclipse.xtext.ui.editor.model.ResourceForIEditorInputFactory.createResource(ResourceForIEditorInputFactory.java:53)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.setDocumentContent(XtextDocumentProvider.java:118)
>
> org.eclipse.ui.editors.text.StorageDocumentProvider.createDocument(StorageDocumentProvider.java:229)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createDocument(XtextDocumentProvider.java:88)
>
> com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createDocument(ProtobufDocumentProvider.java:74)
>
> org.eclipse.ui.editors.text.FileDocumentProvider.createElementInfo(FileDocumentProvider.java:735)
>
> org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createElementInfo(XtextDocumentProvider.java:153)
>
> com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider.createElementInfo(ProtobufDocumentProvider.java:47)
>
> org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)
>
> org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4213)
>
> org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
>
> org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1451)
>
> org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169)
> org.eclipse.xtext.ui.editor.XtextEditor.doSetInput(XtextEditor.java:215)
> org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3200)
>
> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
>
> org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
> org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
>
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
>
> org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2642)
> org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3218)
>
> org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3245)
>
> org.eclipse.xtext.ui.editor.XtextEditor.init(XtextEditor.java:236)
> org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
> org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
>
> org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
>
> org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
>
> org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
>
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
>
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
>
> org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
> org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2756)
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.openNonExternalEditor(EditorAreaDropAdapter.java:277)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.asyncDrop(EditorAreaDropAdapter.java:99)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter.access$0(EditorAreaDropAdapter.java:87)
>
> org.eclipse.ui.internal.ide.EditorAreaDropAdapter$1.run(EditorAreaDropAdapter.java:81)
>
> org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
>
> org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)
>
>
> (Please ignore the "ProtobufDocumentProvider.createDocument" line, it
> is just delegating to super)
>
> According to our logs, the call to
> XtextResourceSetProvider.computePlatformURIMap(IJavaProject) takes a
> minute. It may not sound like too much but have found other delays and
> when they all add up, it is a major annoyance to our users.
> I've been reading Xtext code, and I fail to get the big picture here.
> I have some questions:
>
> 1. Why Xtext has too read jar files in the project's classpath?
> 2. Does it have to it every time a XtextDocument is created, or can it
> be cached somehow?
>
> Many thanks in advance,
> -Alex
Re: Potential performance problem in Xtext [message #875109 is a reply to message #873461] Tue, 22 May 2012 06:59 Go to previous messageGo to next message
Alex Ruiz is currently offline Alex RuizFriend
Messages: 103
Registered: March 2011
Senior Member
Thanks Sebastian and Ed for your replies.

I'm still digesting them...and fighting jetlag. I'm definitely interested in providing a patch for this issue. I may need some time to have a decent understanding of the related Xtext (and possibly EMF) code. I'll be back, asking more questions Smile

Cheers,
-Alex
Re: Potential performance problem in Xtext [message #889287 is a reply to message #875109] Tue, 19 June 2012 05:08 Go to previous messageGo to next message
Alex Ruiz is currently offline Alex RuizFriend
Messages: 103
Registered: March 2011
Senior Member
Hi Sebastian and Ed,

I'm back from vacation and I'm starting to look at this issue again. I kind of get what is being tried to be accomplish, but I don't get "why" (I'm sorry if I'm missing something that was already explained, I've been re-reading this thread several times but I still don't get it).

What areas of a Xtext-based plug-in improve by having a "more reasonable mapping for platform:/resource" (e.g. scoping?). If the DSL created with Xtext does not have anything to do with the JVM (like proto buffer files do), does it make sense to do this mapping?

Many thanks,
-Alex
Re: Potential performance problem in Xtext [message #917537 is a reply to message #872810] Thu, 20 September 2012 07:12 Go to previous message
Aaron Digulla is currently offline Aaron DigullaFriend
Messages: 258
Registered: July 2009
Location: Switzerland
Senior Member
Here is a faster implementation of XtextResourceSetProvider: https://gist.github.com/3754363

[Updated on: Thu, 20 September 2012 07:51]

Report message to a moderator

Previous Topic:serialize an SADL model!
Next Topic:Renaming cross links
Goto Forum:
  


Current Time: Thu Apr 25 10:38:57 GMT 2024

Powered by FUDForum. Page generated in 0.03435 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top