Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build slow while MANIFEST.MF editor open #53

Closed
jukzi opened this issue Apr 28, 2022 · 4 comments
Closed

Build slow while MANIFEST.MF editor open #53

jukzi opened this issue Apr 28, 2022 · 4 comments
Assignees

Comments

@jukzi
Copy link
Contributor

jukzi commented Apr 28, 2022

I have a MANIFEST.MF file open in the PDE Editor. Then i started Project/Clean/"Clean all Projects" in a big workspace. After that the progress was stuck for ~20min at 100% Cleaning all projects.
image

I see the open PDE editor is informed about every single ".class" file changed during the build "display.asyncExec"

 Thread [Worker-72: Cleaning all projects] (Suspended (breakpoint at line 234 in org.eclipse.pde.internal.ui.editor.context.InputContextManager)) 
 org.eclipse.pde.internal.ui.editor.plugin.PluginInputContextManager(org.eclipse.pde.internal.ui.editor.context.InputContextManager).asyncStructureChanged(org.eclipse.core.resources.IFile, boolean) line: 234 
 org.eclipse.pde.internal.ui.editor.plugin.PluginInputContextManager(org.eclipse.pde.internal.ui.editor.context.InputContextManager).lambda$0(org.eclipse.core.resources.IResourceDelta) line: 218  
 org.eclipse.pde.internal.ui.editor.context.InputContextManager$$Lambda$1254.1386710085.visit(org.eclipse.core.resources.IResourceDelta) line: not available  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 67  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor, int) line: 77  
 org.eclipse.core.internal.events.ResourceDelta.accept(org.eclipse.core.resources.IResourceDeltaVisitor) line: 51  
 org.eclipse.pde.internal.ui.editor.plugin.PluginInputContextManager(org.eclipse.pde.internal.ui.editor.context.InputContextManager).resourceChanged(org.eclipse.core.resources.IResourceChangeEvent) line: 211  
 org.eclipse.core.internal.events.NotificationManager$1.run() line: 307
 org.eclipse.core.runtime.SafeRunner.run(org.eclipse.core.runtime.ISafeRunnable) line: 45  
 org.eclipse.core.internal.events.NotificationManager.notify(org.eclipse.core.internal.events.ResourceChangeListenerList$ListenerEntry[], 
 org.eclipse.core.internal.events.ResourceChangeEvent, boolean) line: 297  org.eclipse.core.internal.events.NotificationManager.broadcastChanges(org.eclipse.core.internal.watson.ElementTree, 
 org.eclipse.core.internal.events.ResourceChangeEvent, boolean) line: 160  org.eclipse.core.internal.resources.Workspace.broadcastPostChange() line: 385  
 org.eclipse.core.internal.resources.Workspace.endOperation(org.eclipse.core.runtime.jobs.ISchedulingRule, boolean) line: 1509  
 org.eclipse.ui.internal.ide.dialogs.CleanDialog$1(org.eclipse.core.internal.resources.InternalWorkspaceJob).run(org.eclipse.core.runtime.IProgressMonitor) line: 49  
 org.eclipse.core.internal.jobs.Worker.run() line: 63  
@jukzi
Copy link
Contributor Author

jukzi commented Apr 28, 2022

While there are several issues in the swt messagehandling that could be improved it would be good if PDE would not send a message for every single file but only a single update for all files at the end, please! I guess nobody need intermediate updates of the editor during the build.
Or at least throttled (org.eclipse.jface.util.Throttler.throttledExec()) update of the UI, please.

@jukzi
Copy link
Contributor Author

jukzi commented Apr 28, 2022

here is a screenshot of some time sampled:
image

merks added a commit to merks/eclipse.pde that referenced this issue Apr 28, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit to merks/eclipse.pde that referenced this issue Apr 28, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit to merks/eclipse.pde that referenced this issue Apr 29, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit to merks/eclipse.pde that referenced this issue Apr 29, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit to merks/eclipse.pde that referenced this issue Apr 29, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit to merks/eclipse.pde that referenced this issue Apr 29, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

eclipse-pde#53
merks added a commit that referenced this issue Apr 29, 2022
Improve the processing of the resource delta to avoid an asyncExec call
for each added and removed file but rather use a single asyncExec call
to process all added and removed files at once.

#53
@merks
Copy link
Contributor

merks commented Apr 29, 2022

@jukzi Thanks again for analyzing and reporting a problem like this!

@merks merks closed this as completed Apr 29, 2022
@jukzi
Copy link
Contributor Author

jukzi commented Apr 29, 2022

@merks thanks for solving the issue. It's an exceptional nice event to get an eclipse issue solved - by someone else - and even directly after reporting it.🥂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants