Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Kubitz2021-12-16 16:47:45 +0000
committerAndrey Loskutov2021-12-16 19:10:05 +0000
commit3661a6fb8929709696e8504f4cd8a70e576d25f6 (patch)
tree5b58341e088f3df013b77f7158b1c132068a5828
parent03585c292b69f195d4e7ffc253213c3ab2159564 (diff)
downloadeclipse.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.java28
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)

Back to the top