diff options
author | Joerg Kubitz | 2021-12-16 16:47:45 +0000 |
---|---|---|
committer | Andrey Loskutov | 2021-12-16 19:10:05 +0000 |
commit | 3661a6fb8929709696e8504f4cd8a70e576d25f6 (patch) | |
tree | 5b58341e088f3df013b77f7158b1c132068a5828 | |
parent | 03585c292b69f195d4e7ffc253213c3ab2159564 (diff) | |
download | eclipse.jdt.core-3661a6fb8929709696e8504f4cd8a70e576d25f6.tar.gz eclipse.jdt.core-3661a6fb8929709696e8504f4cd8a70e576d25f6.tar.xz eclipse.jdt.core-3661a6fb8929709696e8504f4cd8a70e576d25f6.zip |
Bug 576646 - JavaModel save: Performance TrackingI20211216-1800
Enable tracing for "org.eclipse.jdt.core" "debug" + "debug/builder"
example System.out:
saveState took 13977ms: ManyFiles
saveState took 1ms: demo
saveState took 0ms: CreateJava
saveState took 0ms: simple
saving took 13994ms: 4
Change-Id: I1b7d0dcd060dbb46c7683d7b9f10453da1886fa2
Signed-off-by: Joerg Kubitz <jkubitz-eclipse@gmx.de>
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/188921
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java index 3f13e4b288..4091c9a929 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java @@ -4104,6 +4104,16 @@ public class JavaModelManager implements ISaveParticipant, IContentTypeChangeLis * Reads the build state for the relevant project. */ protected Object readState(IProject project) throws CoreException { + long startTime = System.currentTimeMillis(); + Object result = readStateTimed(project); + if (JavaBuilder.DEBUG) { + long stopTime = System.currentTimeMillis(); + System.out.println("readState took " + (stopTime - startTime) + "ms:" + project.getName()); //$NON-NLS-1$ //$NON-NLS-2$ + } + return result; + } + + private Object readStateTimed(IProject project) throws CoreException { File file = getSerializationFile(project); if (file != null && file.exists()) { try (DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)))) { @@ -4320,7 +4330,14 @@ public class JavaModelManager implements ISaveParticipant, IContentTypeChangeLis if (context.getKind() == ISaveContext.SNAPSHOT) return; // save built state - if (info.triedRead) saveBuiltState(info); + if (info.triedRead) { + long startTime = System.currentTimeMillis(); + saveBuiltState(info); + if (JavaBuilder.DEBUG) { + long stopTime = System.currentTimeMillis(); + System.out.println("saveState took " + (stopTime - startTime) + "ms:" + info.project.getName()); //$NON-NLS-1$ //$NON-NLS-2$ + } + } } /** @@ -4599,6 +4616,15 @@ public class JavaModelManager implements ISaveParticipant, IContentTypeChangeLis */ @Override public void saving(ISaveContext context) throws CoreException { + long startTime = System.currentTimeMillis(); + savingTimed(context); + if (JavaBuilder.DEBUG) { + long stopTime = System.currentTimeMillis(); + System.out.println("saving took " + (stopTime - startTime) + "ms:" + this.perProjectInfos.values().size()); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + private void savingTimed(ISaveContext context) throws CoreException { long start = -1; if (VERBOSE) |