From 4fb0051c75fce01a17c0ef965a652e78c6d34790 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Fri, 27 Nov 2015 17:06:36 +0300 Subject: [PATCH] editor opening performance test --- .../editor/EditorCreationPerformanceTest.java | 36 +++++++++++++++++++ .../editor/EditorPaintingPerformanceTest.java | 2 -- .../editor/impl/AbstractEditorTest.java | 3 ++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorCreationPerformanceTest.java diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorCreationPerformanceTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorCreationPerformanceTest.java new file mode 100644 index 000000000000..2e1a17412570 --- /dev/null +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorCreationPerformanceTest.java @@ -0,0 +1,36 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.openapi.editor; + +import com.intellij.openapi.editor.impl.AbstractEditorTest; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.testFramework.PlatformTestUtil; + +public class EditorCreationPerformanceTest extends AbstractEditorTest { + public void testOpeningEditorWithManyLines() throws Exception { + Document document = EditorFactory.getInstance().createDocument(StringUtil.repeat(LOREM_IPSUM + '\n', 15000)); + + PlatformTestUtil.startPerformanceTest("Editor creation", 250, () -> { + Editor editor = EditorFactory.getInstance().createEditor(document); + try { + System.out.println(editor.getContentComponent().getPreferredSize()); + } + finally { + EditorFactory.getInstance().releaseEditor(editor); + } + }).cpuBound().assertTiming(); + } +} diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorPaintingPerformanceTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorPaintingPerformanceTest.java index bd189dac103d..95aaed4b2556 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorPaintingPerformanceTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/EditorPaintingPerformanceTest.java @@ -24,8 +24,6 @@ import com.intellij.testFramework.PlatformTestUtil; import java.awt.*; public class EditorPaintingPerformanceTest extends AbstractEditorTest { - private static final String LOREM_IPSUM = - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; private static final int EDITOR_WIDTH_PX = 1000; public void testScrollingThroughLongTextFile() throws Exception { diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/AbstractEditorTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/AbstractEditorTest.java index abc2aee1db5c..781b9cec0951 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/AbstractEditorTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/AbstractEditorTest.java @@ -54,6 +54,9 @@ public abstract class AbstractEditorTest extends LightPlatformCodeInsightTestCas public static final int TEST_LINE_HEIGHT = 10; public static final int TEST_DESCENT = 2; + public static final String LOREM_IPSUM = + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; + @Override protected void setUp() throws Exception { super.setUp();