"Building Workspace" slow with EGit 1.1 and Nightly [message #756185] |
Fri, 11 November 2011 07:23  |
Eclipse User |
|
|
|
Building Projects is considerably slower for me when they are under EGit version control than when they aren't.
To give you some numbers:
Projects are under EGit version control;
i disconnect all projects -> takes less than a minute
i clean&build all projects -> takes 80 seconds
i put all projects back under version control -> takes less than a minute
i clean&build all projects again -> takes ~1500 seconds
Hardware is Core2Duo E8600 with 4 GB RAM and Intel 120 GB SSD
Software is Windows XP 32 bit; Eclipse Indigo SR1 with EGit 1.1 / Nightly Build 20111111 (both EGit versions tested; i didn't notice any differences)
In the Eclipse UI it hangs at "Copying resources to the output folder" most of the time. Looking at file access what Eclipse does during that time is to read the git index over and over again.
here's what i believe to be a relevant stack trace:
"Worker-7" prio=6 tid=0x561bf400 nid=0xd28 runnable [0x593be000]
java.lang.Thread.State: RUNNABLE
at sun.security.provider.SHA.implCompress(Unknown Source)
at sun.security.provider.DigestBase.engineUpdate(Unknown Source)
at java.security.MessageDigest$Delegate.engineUpdate(Unknown Source)
at java.security.MessageDigest.update(Unknown Source)
at org.eclipse.jgit.dircache.DirCacheEntry.<init>(DirCacheEntry.java:168)
at org.eclipse.jgit.dircache.DirCache.readFrom(DirCache.java:413)
at org.eclipse.jgit.dircache.DirCache.read(DirCache.java:346)
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:196)
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:239)
at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:873)
at org.eclipse.egit.core.GitMoveDeleteHook.deleteFile(GitMoveDeleteHook.java:58)
at org.eclipse.team.internal.core.MoveDeleteManager.deleteFile(MoveDeleteManager.java:50)
at org.eclipse.core.internal.resources.Resource.unprotectedDelete(Resource.java:1930)
at org.eclipse.core.internal.resources.Resource.delete(Resource.java:780)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder$3.visit(BatchImageBuilder.java:219)
at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:65)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:82)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:86)
at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:127)
at org.eclipse.core.internal.resources.Resource.accept(Resource.java:75)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.copyExtraResourcesBack(BatchImageBuilder.java:191)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.cleanOutputFolders(BatchImageBuilder.java:162)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:46)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:254)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:173)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:513)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:422)
at org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:180)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
i created several thread dumps, they all looked mostly the same.
I first suspected class files being under version control since i accidentally put them under version control when i first imported the projects, but since then i have removed the class files from git and ignored the classes dir via one .gitignore file per project. When i check out the ref i test with into an empty directory the classes dir is empty, so i'm reasonably sure this is not the problem.
Since building projects is - i think - a fairly common operation, the slowdown i'm experiencing is quite severe and i have not found anyone else reporting the problem in the forum or on the bug tracker, i assume it's not a general problem with EGit, but some odd configuration/constellation on my part. i would be thankful for pointers to what the problem might be.
|
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.44667 seconds