diff --git a/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/autodetect/JavaAutoDetectIndentPerformanceTest.java b/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/autodetect/JavaAutoDetectIndentPerformanceTest.java index b5d0d80d6036..74e3c1417ea0 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/autodetect/JavaAutoDetectIndentPerformanceTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/codeStyle/autodetect/JavaAutoDetectIndentPerformanceTest.java @@ -20,6 +20,7 @@ import com.intellij.openapi.util.Ref; import com.intellij.psi.autodetect.AbstractIndentAutoDetectionTest; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.TeamCityLogger; +import com.intellij.util.TimeoutUtil; import org.jetbrains.annotations.NotNull; import org.junit.Assert; @@ -41,9 +42,9 @@ public class JavaAutoDetectIndentPerformanceTest extends AbstractIndentAutoDetec public void testBigColdFile() { Ref ref = Ref.create(); - long fileLoadTime = trackTime(() -> configureByFile(getFileNameWithExtension())); + long fileLoadTime = TimeoutUtil.runAndGetExecutionTime(() -> configureByFile(getFileNameWithExtension())); - long detectingTime = trackTime(() -> ref.set(detectIndentOptions())); + long detectingTime = TimeoutUtil.runAndGetExecutionTime(() -> ref.set(detectIndentOptions())); double ratio = (double)detectingTime / fileLoadTime; if (ratio > 0.3) { TeamCityLogger.error("Detecting indent have taken too much time proportionally to file read time " + ratio); @@ -68,14 +69,7 @@ public class JavaAutoDetectIndentPerformanceTest extends AbstractIndentAutoDetec public void testBigOneLineFile() { configureByFile("oneLine.json"); - long time = trackTime(AbstractIndentAutoDetectionTest::detectIndentOptions); + long time = TimeoutUtil.runAndGetExecutionTime(AbstractIndentAutoDetectionTest::detectIndentOptions); assertTrue(time < 40); } - - - private static long trackTime(Runnable runnable) { - long startTime = System.currentTimeMillis(); - runnable.run(); - return System.currentTimeMillis() - startTime; - } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.java index 45b5c5e90acb..fdcd1b8df7cf 100644 --- a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.java @@ -149,7 +149,7 @@ public class StartupManagerImpl extends StartupManagerEx { } private void logActivityDuration(AtomicBoolean uiFreezeWarned, StartupActivity extension) { - long duration = runAndMeasure(extension); + long duration = TimeoutUtil.runAndGetExecutionTime(() -> extension.runActivity(myProject)); Application app = ApplicationManager.getApplication(); if (duration > 100 && !app.isUnitTestMode()) { @@ -161,12 +161,6 @@ public class StartupManagerImpl extends StartupManagerEx { } } - private long runAndMeasure(StartupActivity extension) { - long start = System.currentTimeMillis(); - extension.runActivity(myProject); - return System.currentTimeMillis() - start; - } - // queue each activity in smart mode separately so that if one of them starts dumb mode, the next ones just wait for it to finish private void queueSmartModeActivity(final Runnable activity) { DumbService.getInstance(myProject).runWhenSmart(() -> runActivity(activity)); diff --git a/platform/testFramework/src/com/intellij/testFramework/CpuTimings.java b/platform/testFramework/src/com/intellij/testFramework/CpuTimings.java index f5dde672d557..64ff7eff1161 100644 --- a/platform/testFramework/src/com/intellij/testFramework/CpuTimings.java +++ b/platform/testFramework/src/com/intellij/testFramework/CpuTimings.java @@ -15,6 +15,8 @@ */ package com.intellij.testFramework; +import com.intellij.util.TimeoutUtil; + import javax.management.Attribute; import javax.management.AttributeList; import javax.management.MBeanServer; @@ -36,7 +38,7 @@ class CpuTimings { StringBuilder log = new StringBuilder(); for (int i = 0;; i++) { - long time = calcCpuTiming(CpuTimings::addBigIntegers); + long time = TimeoutUtil.runAndGetExecutionTime(CpuTimings::addBigIntegers); if (time < minTime) { //log.append("Iteration " + i + ", time " + time + "\n"); minTime = time; @@ -49,12 +51,6 @@ class CpuTimings { } } - private static long calcCpuTiming(Runnable oneIteration) { - long start = System.currentTimeMillis(); - oneIteration.run(); - return System.currentTimeMillis() - start; - } - private static void addBigIntegers() { BigInteger k = new BigInteger("1"); for (int i = 0; i < 1000000; i++) { diff --git a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/XsltHighlightingTest.java b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/XsltHighlightingTest.java index 06043d40ad21..0c537bc7bde1 100644 --- a/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/XsltHighlightingTest.java +++ b/plugins/xpath/xpath-lang/test/org/intellij/lang/xpath/xslt/XsltHighlightingTest.java @@ -8,6 +8,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDocumentManager; import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl; import com.intellij.util.ArrayUtil; +import com.intellij.util.TimeoutUtil; import org.intellij.lang.xpath.TestBase; import org.intellij.lang.xpath.xslt.impl.XsltStuffProvider; @@ -129,11 +130,8 @@ public class XsltHighlightingTest extends TestBase { final Project project = myFixture.getProject(); PsiDocumentManager.getInstance(project).commitAllDocuments(); - return ReadAction.compute(() -> { - final long l = System.currentTimeMillis(); - CodeInsightTestFixtureImpl.instantiateAndRun(myFixture.getFile(), myFixture.getEditor(), ArrayUtil.EMPTY_INT_ARRAY, false); - return System.currentTimeMillis() - l; - }); + return TimeoutUtil.runAndGetExecutionTime(() -> ReadAction.run( + () -> CodeInsightTestFixtureImpl.instantiateAndRun(myFixture.getFile(), myFixture.getEditor(), ArrayUtil.EMPTY_INT_ARRAY, false))); } private void doXsltHighlighting() {