Great work Snjeza!!! What branch are you using?
Maybe one patch per change would be easier to track.

Fred Bricon

2011/4/12 Snjezana Peco <snjezana.p...@redhat.com>

> I have tested m2eclipse performance.
> These are my first impressions:
>
> 1) ProjectRegistryRefreshJob changes a workspace and fires a lot of
> resource change listeners.
> When creating a marker, for instance, this job fires five resource change
> listeners (createMarker and four the setAttribute methods).
> This job should be WorkspaceJob.
>
> 2) ProjectRegistryRefreshJob and MavenBuilder (a builder job) aren't
> synchronized what often causes StaleMutableProjectRegistryException
> (ProjectRegistryManager, line 319) and that is the cause of starting this
> job again.
>
> 3) LifecycleMappingFactory.getBundleMetadataSources is too often called.
> Every time it is called it reads the extension point registry and lifecycle
> mapping xml files. Caching would speed up the overall performance.
>
> 4) The BuildPathManager.configureAttchedSourcesAndJavadoc method is very
> slow. I have improved it a little (DownloadSourcesJob isn't started when the
> download preferences are off), but it is possible to improve it more.
>
> 5) NexusIndexManager.mavenProjectChanged(...) always removes and adds back
> an artifact to the index repository. Performance will be much better if the
> index repository is updated only when the artifact doesn't exist or is
> changed. Searching the index repository is much faster than removing and
> adding artifacts.
>
> 6) MarkerLocationService.addEditorHintMarkers calls two methods that
> acquire the WTP's IDOMModel
> (StructuredModelManager.getModelManager().getModelForRead(...)) and release
> it. WTP's methods can be slow for larger files and it would be better to
> acquire/release the model once for
> MarkerLocationService.addEditorHintMarkers.
> MarkerLocationService.addEditorHintMarkers is used only once.
>
> 7) ProjectRegistryManager.applyMutableProjectRegistry calls
> stateReader.writeWorkspaceState(projectRegistry) when refreshing a project.
> Since the workspaceState.ser file is only used when starting a workspace,
> this method can be used only when stopping the org.eclipse.m2e.core bundle
>
> 8) BuildPathManager.mavenProjectChanged updates Maven classpath containers
> of all projects no matter they are changed or not. They should be updated
> only for relevant events (event.getFlags() != 0).
>
> 9) ProjectRegistryManager.refresh(MutableProjectRegistry newState,
> DependencyResolutionContext context, IProgressMonitor monitor) aggressively
> read Maven projects.
> I have tested JBoss AS 7 (https://github.com/jbossas/jboss-as). When
> calling Maven>Update Project Configuration on the jboss-as-parent project,
> the MavenImpl.readProject  is called for about 2-6 times for each project in
> the workspace. Sometimes this method lasts short time (Maven cache is
> active), but sometimes takes a longer time.
> I have tried to cache MavenProjectFacade in each of the two phases so that
> MavenImpl.readProject is called two times for every project (once per each
> phase). Not sure if it is possible to make this method to be run only once.
>
> 10) The Maven Pom Editor has a huge memory leak. Just opening/closing
> jboss-as-parent/pom.xml will cause the JVM heap size to increase by 2-10MB
> which can cause Eclipse to crash (OOM).
>
> I have implemented 1-9 enhancements. The Maven>Update Project Configuration
> action on the jboss-as-parent project is much faster (2-3 times). Editing
> the pom.xml file of the jboss-as-parent project is 2-3 times faster. The
> Maven builder is improved 2-3 times.
>
> Would you like me to create a patch?
>
> Snjeza
>
> Snjezana Peco wrote:
>
>> Hello Steve,
>>
>> I would like to test this a bit more. Could you provide me with more
>> details?
>>
>> Steve Cohen wrote:
>>
>>> and, sad to say, it's mostly because of the combination of m2eclipse,
>>> helios, subversive and the whole fracking mess.
>>>
>>> Eclipse has become less and less usable.  I don't know who's to blame,
>>> which plugin is the cause or whether it's the whole platform or some
>>> combination.  Rare is the day of heavy development where Eclipse doesn't
>>> crash many times.
>>>
>>> Every crash is different.  Sometimes I have to delete the .lock file.
>>> Other times I don't.  Other times I can't do it without killing processes.
>>>
>>
>> Could you check if there are files named hs_err_pidXXXX.log in  your
>> working directory (your ECLIPSE_HOME probably)?
>> If so, could you attach any of them?
>>
>>  eclipse-jee-helios-SR2
>>> m2eclipse, whatever the latest that's available today
>>> subversive
>>> hibernate plugin
>>>
>>
>> Could you attach your configuration : Help>About Eclipse SDK>Installation
>> Details>Configuration
>>
>>  There are still user interface actions that provoke crashes.
>>>
>>
>> What actions are causing the crash? Editing pom.xml, cleaning the project,
>> svn checkout/merge or something else.
>>
>> Thanks,
>> Snjeza
>> _______________________________________________
>> m2e-users mailing list
>> m2e-users@eclipse.org
>> https://dev.eclipse.org/mailman/listinfo/m2e-users
>>
>
> _______________________________________________
> m2e-users mailing list
> m2e-users@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/m2e-users
>



-- 
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-users mailing list
m2e-users@eclipse.org
https://dev.eclipse.org/mailman/listinfo/m2e-users

Reply via email to