scanning for tasks is blocking the workspace
From Dzimitry:
I used Java VisualVM tool to gather thread and heap information. It turned out that up to 200 new threads were created AFTER finishing building all the projects in workspace.
The threads were started by org.erlide.core.services.builder.BuilderHelper.createTaskMarkers(IProject, IResource) method, which started new job for each resource(=file) in the workspace. As part of its work, createTaskMarkers scans the content of the file, searches for task descriptions (appearances of TODO, FIXME, XXX) and creates tasks markers for the file.
The last step requires acquiring the lock of the workspace, this lock becomes the bottleneck and causes CPU and memory waste.
--------
We need to gather all marker creation in one single job that publishes the markers in chunks and unlocks the workspace in-between. Or some other way to have this activity as lowest priority.
Until then we could run this only manually (see another ticket).
I used Java VisualVM tool to gather thread and heap information. It turned out that up to 200 new threads were created AFTER finishing building all the projects in workspace.
The threads were started by org.erlide.core.services.builder.BuilderHelper.createTaskMarkers(IProject, IResource) method, which started new job for each resource(=file) in the workspace. As part of its work, createTaskMarkers scans the content of the file, searches for task descriptions (appearances of TODO, FIXME, XXX) and creates tasks markers for the file.
The last step requires acquiring the lock of the workspace, this lock becomes the bottleneck and causes CPU and memory waste.
--------
We need to gather all marker creation in one single job that publishes the markers in chunks and unlocks the workspace in-between. Or some other way to have this activity as lowest priority.
Until then we could run this only manually (see another ticket).
Leave a comment
on 2011-08-29 04:32 *
By Vlad Dumitrescu
Milestone set to sprint #22
Status changed from New to Test
Milestone set to sprint #22
Status changed from New to Test
I set the task scanning as lower priority, it looks as it's enough.
Commited it by mistake as part of #898...
Commited it by mistake as part of #898...
on 2011-08-29 08:40 *
By Vlad Dumitrescu
Assigned to set to Vlad Dumitrescu
Assigned to set to Vlad Dumitrescu