具有许多小部件的编辑器的性能令人震惊

时间:2019-03-28 17:35:13

标签: themes e4

我们切换到了e4目标平台。一位编辑的渲染速度变得非常慢(布局大约需要20秒)。从编辑器菜单中打开模式对话框时,应用程序会闪烁,就像癫痫发作一样。

当我们关闭CSS时,通过...

DefaultScope.INSTANCE.getNode("org.eclipse.e4.ui.workbench.renderers.swt")
    .put("themeEnabled", "false");

在插件中,渲染速度非常快(<10ms),就像以前在以前的目标平台下一样。

这是我已嵌入到编辑器中的控件(出于评估目的):

package xyz;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;

public class BigControl extends Composite {

    public BigControl(Composite parent, int style) {
        super(parent, style);
        setLayout(new GridLayout(23, false));
        for (int i=0; i<100; i++) {
            for (int j=0; j<23; j++) {
                new Label(this, SWT.NONE).setText("|" +  Integer.toString(i) + " " + Integer.toString(j) + "|");;
            }
        }
    }
}

是否有人遇到过该问题?是的,我们知道表对于这种数量的数据会更好,但是重构在当前会花费太多。

第二个问题是,当我们关闭主题功能时,eclipse / swt会在切换透视图,视图等时引发异常。

2 个答案:

答案 0 :(得分:0)

...为了清楚起见,我通过eclipse向导创建了一个全新的应用程序(...具有视图)。

我用那个替换了示例视图代码-如前所述,当我们关闭css / theming(请参见上面的代码)时,一切都很好-否则它不会停止动摇,甚至很难使鼠标指针回到eclipse以停止应用程序:

package xyz;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.ViewPart;

public class View extends ViewPart {
    public static final String ID = "xyz.view";

    public class BigControl extends Composite {

        public BigControl(Composite parent, int style) {
            super(parent, style);
            setLayout(new GridLayout(23, false));
            for (int i=0; i<100; i++) {
                for (int j=0; j<23; j++) {
                    new Label(this, SWT.NONE).setText("|" + Integer.toString(i) +     " " + Integer.toString(j) + "|");;
            }
            }
        }
    }

    @Override
    public void createPartControl(Composite parent) {
        new BigControl(parent, SWT.NONE);
    }


    @Override
    public void setFocus() {
    }
}

答案 1 :(得分:0)

好的,我们用较新的平台(2019-3)替换了目标平台。我不知道要使用旧平台。

闪烁停止了,它仍然不快(调整窗口大小大约需要2秒钟),但目前尚可接受。

谢谢您的帮助,

最好,马丁