Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очередные данные о "медленности" JAVA 
:(
    Опции темы
w1nd
Дата 9.3.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Platon @  9.3.2008,  14:35 Найти цитируемый пост)
Не эта ли темка?

 smile 

Самое смешное, что перед как раз перед
Цитата(w1nd @  6.1.2008,  07:59 Найти цитируемый пост)
В кроссплатформенной среде оптимизация кода под конкретную архитектуру (процессор/ОС/jvm) бессмысленна и вредна.

я производил некоторые тесты, в которых мне не удалось выявить пользу подобной оптимизации. Вероятно, я не учёл ещё каких-то факторов...

Добавлено через 1 минуту и 46 секунд
Цитата(Platon @  9.3.2008,  14:35 Найти цитируемый пост)
Надо заметить, что вы не только о сложении/вычитании говорили.

Да; исправил сообщение.

Добавлено через 5 минут
В любом случае, я не откажусь от ранее сделанных выводов о вреде оптимизации java-кода под конкретные типы процессоров. Но очень печалит пренебрежение оптимизациями разработчиков jre... JIT на этом примере точно успевает отработать, поэтому странно видеть такой плачевный результат...


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 9.3.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



А меня в Java расстраивает только GUI. Видимо придется брать на вооружение Jambi.
PM MAIL ICQ   Вверх
w1nd
Дата 9.3.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Platon @  9.3.2008,  21:48 Найти цитируемый пост)
А меня в Java расстраивает только GUI. Видимо придется брать на вооружение Jambi.

Уж где-где, а в гуях по мне всё нормально. Посмотрите на OpenOffice или Adobe Reader 9 - поводов для расстройств станет значительно меньше.

Это сообщение отредактировал(а) w1nd - 9.3.2008, 21:52


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 9.3.2008, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Мне достаточно глянуть на свою программку с несколькими текстовыми полями (7 полей) расставленных в BoxLayout. Сравнивая с Opera или JetBrains Omea, и последний довод  (но, не могу утверждать, не нашел подтверждения) - Intellij IDEA, использует родные библиотеки для рисования. Очень насыщенная и быстрая отрисовка.

Всегда восхищался гибкостью, скоростью и аккуратностью Qt, а в паре с Java это будет просто божественный дуэт.

Это сообщение отредактировал(а) Platon - 10.3.2008, 00:05
PM MAIL ICQ   Вверх
w1nd
Дата 10.3.2008, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Platon @  9.3.2008,  22:06 Найти цитируемый пост)
Всегда восхищался гибкостью, скоростью

Насчёт скорости у меня имеются сомнения... Есть какие-нибудь тесты и сравнительные характеристики? 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 10.3.2008, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Чисто визуальные ощущения, причем вполне объективные. Не буду же я, любя и уважая Java, подсуживать другим.
PM MAIL ICQ   Вверх
Platon
Дата 10.3.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Вот был пример из туториала Qt Jambi

Код

import com.trolltech.qt.core.Qt;
import com.trolltech.qt.gui.*;

public class LineEdits extends QWidget {

    private QLineEdit echoLineEdit;
    private QLineEdit validatorLineEdit;
    private QLineEdit alignmentLineEdit;
    private QLineEdit inputMaskLineEdit;
    private QLineEdit accessLineEdit;

    public LineEdits() {
        this(null);
    }

    public LineEdits(QWidget parent) {
        super(parent);
        QGroupBox echoGroup = new QGroupBox(tr("Echo"));

        QLabel echoLabel = new QLabel(tr("Mode:"));
        QComboBox echoComboBox = new QComboBox();
        echoComboBox.addItem(tr("Normal"));
        echoComboBox.addItem(tr("Password"));
        echoComboBox.addItem(tr("No Echo"));

        setWindowIcon(new QIcon("classpath:com/trolltech/images/qt-logo.png"));

        echoLineEdit = new QLineEdit();
        echoLineEdit.setFocus();
        //////////////////

        QGroupBox validatorGroup = new QGroupBox(tr("Validator"));

        QLabel validatorLabel = new QLabel(tr("Type:"));
        QComboBox validatorComboBox = new QComboBox();
        validatorComboBox.addItem(tr("No validator"));
        validatorComboBox.addItem(tr("Integer validator"));
        validatorComboBox.addItem(tr("Double validator"));

        validatorLineEdit = new QLineEdit();
        ////////////////////

        QGroupBox alignmentGroup = new QGroupBox(tr("Alignment"));

        QLabel alignmentLabel = new QLabel(tr("Type:"));
        QComboBox alignmentComboBox = new QComboBox();
        alignmentComboBox.addItem(tr("Left"));
        alignmentComboBox.addItem(tr("Centered"));
        alignmentComboBox.addItem(tr("Right"));

        alignmentLineEdit = new QLineEdit();

        ///////////////////////////////////////

        QGroupBox inputMaskGroup = new QGroupBox(tr("Input mask"));

        QLabel inputMaskLabel = new QLabel(tr("Type:"));
        QComboBox inputMaskComboBox = new QComboBox();
        inputMaskComboBox.addItem(tr("No mask"));
        inputMaskComboBox.addItem(tr("Phone number"));
        inputMaskComboBox.addItem(tr("ISO date"));
        inputMaskComboBox.addItem(tr("License key"));

        inputMaskLineEdit = new QLineEdit();

        ///////////////////////////////////////

        QGroupBox accessGroup = new QGroupBox(tr("Access"));

        QLabel accessLabel = new QLabel(tr("Read-only:"));
        QComboBox accessComboBox = new QComboBox();
        accessComboBox.addItem(tr("False"));
        accessComboBox.addItem(tr("True"));

        accessLineEdit = new QLineEdit();

        ////////////////////////////////////////////

        echoComboBox.activatedIndex.connect(this, "echoChanged(int)");
        validatorComboBox.activatedIndex.connect(this, "validatorChanged(int)");
        alignmentComboBox.activatedIndex.connect(this, "alignmentChanged(int)");
        inputMaskComboBox.activatedIndex.connect(this, "inputMaskChanged(int)");
        accessComboBox.activatedIndex.connect(this, "accessChanged(int)");

        /////////////////////////////////////////////

        QGridLayout echoLayout = new QGridLayout();
        echoLayout.addWidget(echoLabel, 0, 0);
        echoLayout.addWidget(echoComboBox, 0, 1);
        echoLayout.addWidget(echoLineEdit, 1, 0, 1, 2);
        echoGroup.setLayout(echoLayout);

        //////////////////////////////////////////

        QGridLayout validatorLayout = new QGridLayout();
        validatorLayout.addWidget(validatorLabel, 0, 0);
        validatorLayout.addWidget(validatorComboBox, 0, 1);
        validatorLayout.addWidget(validatorLineEdit, 1, 0, 1, 2);
        validatorGroup.setLayout(validatorLayout);

        QGridLayout alignmentLayout = new QGridLayout();
        alignmentLayout.addWidget(alignmentLabel, 0, 0);
        alignmentLayout.addWidget(alignmentComboBox, 0, 1);
        alignmentLayout.addWidget(alignmentLineEdit, 1, 0, 1, 2);
        alignmentGroup.setLayout(alignmentLayout);

        QGridLayout inputMaskLayout = new QGridLayout();
        inputMaskLayout.addWidget(inputMaskLabel, 0, 0);
        inputMaskLayout.addWidget(inputMaskComboBox, 0, 1);
        inputMaskLayout.addWidget(inputMaskLineEdit, 1, 0, 1, 2);
        inputMaskGroup.setLayout(inputMaskLayout);

        QGridLayout accessLayout = new QGridLayout();
        accessLayout.addWidget(accessLabel, 0, 0);
        accessLayout.addWidget(accessComboBox, 0, 1);
        accessLayout.addWidget(accessLineEdit, 1, 0, 1, 2);
        accessGroup.setLayout(accessLayout);

        //////////////////////////////////////////////

        QGridLayout layout = new QGridLayout();
        layout.addWidget(echoGroup, 0, 0);
        layout.addWidget(validatorGroup, 1, 0);
        layout.addWidget(alignmentGroup, 2, 0);
        layout.addWidget(inputMaskGroup, 0, 1);
        layout.addWidget(accessGroup, 1, 1);
        setLayout(layout);

        setWindowTitle(tr("Line Edits"));
    }

    public void echoChanged(int index) {
        switch (index) {
            case 0:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.Normal);
                break;
            case 1:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.Password);
                break;
            case 2:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.NoEcho);
        }
    }

    public void validatorChanged(int index) {
        switch (index) {
            case 0:
                validatorLineEdit.setValidator(null);
                break;
            case 1:
                validatorLineEdit.setValidator(new QIntValidator(validatorLineEdit));
                break;
            case 2:
                validatorLineEdit.setValidator(new QDoubleValidator(-999.0, 999.0, 2, validatorLineEdit));
        }

        validatorLineEdit.setText("");
    }

    public void alignmentChanged(int index) {
        switch (index) {
            case 0:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignLeft));
                break;
            case 1:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignCenter));
                break;
            case 2:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignRight));
        }
    }

    public void inputMaskChanged(int index) {
        switch (index) {
            case 0:
                inputMaskLineEdit.setInputMask("");
                break;
            case 1:
                inputMaskLineEdit.setInputMask("+99 99 99 99 99;_");
                break;
            case 2:
                inputMaskLineEdit.setInputMask("0000-00-00");
                inputMaskLineEdit.setText("00000000");
                inputMaskLineEdit.setCursorPosition(0);
                break;
            case 3:
                inputMaskLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");
        }
    }

    public void accessChanged(int index) {
        switch (index) {
            case 0:
                accessLineEdit.setReadOnly(false);
                break;
            case 1:
                accessLineEdit.setReadOnly(true);
        }
    }

    public static void main(String args[]) {
        QApplication.initialize(args);

        LineEdits lineedits = new LineEdits();
        lineedits.show();

        QApplication.exec();
    }
}


Вот недоделанный аналог на SWING

Код

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JavaLineEdits extends JFrame {
    private JTextField echoLineEdit;
    private JTextField validatorLineEdit;
    private JTextField alignmentLineEdit;
    private JTextField inputMaskLineEdit;
    private JTextField accessLineEdit;

    public JavaLineEdits() {
        JPanel echoGroup = new JPanel(new GridBagLayout());
        echoGroup.setBorder(BorderFactory.createTitledBorder("Echo"));
        echoGroup.setLayout(new BoxLayout(echoGroup, BoxLayout.Y_AXIS));
        JLabel echoLabel = new JLabel("Mode:");
        final JComboBox echoComboBox = new JComboBox();
        echoComboBox.addItem("Normal");
        echoComboBox.addItem("Password");
        echoComboBox.addItem("No Echo");

        echoLineEdit = new JTextField();
        //////////////////

        JPanel validatorGroup = new JPanel(new GridBagLayout());
        validatorGroup.setBorder(BorderFactory.createTitledBorder("Validator"));
        validatorGroup.setLayout(new BoxLayout(validatorGroup, BoxLayout.Y_AXIS));
        JLabel validatorLabel = new JLabel("Type:");
        final JComboBox validatorComboBox = new JComboBox();
        validatorComboBox.addItem("No validator");
        validatorComboBox.addItem("Integer validator");
        validatorComboBox.addItem("Double validator");

        validatorLineEdit = new JTextField();
        ////////////////////

        JPanel alignmentGroup = new JPanel(new GridBagLayout());
        alignmentGroup.setBorder(BorderFactory.createTitledBorder("Alignment"));
        JLabel alignmentLabel = new JLabel("Type:");
        final JComboBox alignmentComboBox = new JComboBox();
        alignmentComboBox.addItem("Left");
        alignmentComboBox.addItem("Centered");
        alignmentComboBox.addItem("Right");

        alignmentLineEdit = new JTextField();

        ///////////////////////////////////////

        JPanel inputMaskGroup = new JPanel();
        inputMaskGroup.setBorder(BorderFactory.createTitledBorder("Input mask"));
        inputMaskGroup.setLayout(new BoxLayout(inputMaskGroup, BoxLayout.Y_AXIS));
        JLabel inputMaskLabel = new JLabel("Type:");
        final JComboBox inputMaskComboBox = new JComboBox();
        inputMaskComboBox.addItem("No mask");
        inputMaskComboBox.addItem("Phone number");
        inputMaskComboBox.addItem("ISO date");
        inputMaskComboBox.addItem("License key");

        inputMaskLineEdit = new JTextField();

        ///////////////////////////////////////

        JPanel accessGroup = new JPanel(new GridBagLayout());
        accessGroup.setBorder(BorderFactory.createTitledBorder("Access"));
        JLabel accessLabel = new JLabel("Read-only:");
        final JComboBox accessComboBox = new JComboBox();
        accessComboBox.addItem("False");
        accessComboBox.addItem("True");

        accessLineEdit = new JTextField();

        ////////////////////////////////////////////

        echoComboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                echoChanged(echoComboBox.getSelectedIndex());
            }
        });

        validatorComboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                validatorChanged(validatorComboBox.getSelectedIndex());
            }
        });

        alignmentComboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                alignmentChanged(alignmentComboBox.getSelectedIndex());
            }
        });

        inputMaskComboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                inputMaskChanged(inputMaskComboBox.getSelectedIndex());
            }
        });

        accessComboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                accessChanged(accessComboBox.getSelectedIndex());
            }
        });

        /////////////////////////////////////////////
        GridBagConstraints gbc = new GridBagConstraints();

        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        echoGroup.add(echoLabel, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.weightx = 1;
        echoGroup.add(echoComboBox, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2;
        gbc.gridheight = 1;
        gbc.weightx = 1;
        echoGroup.add(echoLineEdit, gbc);

        //////////////////////////////////////////
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        validatorGroup.add(validatorLabel, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.weightx = 1;
        validatorGroup.add(validatorComboBox, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.gridwidth = 1;
        gbc.gridheight = 2;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        validatorGroup.add(validatorLineEdit, gbc);
        /////////////////////////////////////////////////
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        alignmentGroup.add(alignmentLabel, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.weightx = 1;
        alignmentGroup.add(alignmentComboBox, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2;
        gbc.gridheight = 1;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        alignmentGroup.add(alignmentLineEdit, gbc);

        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        inputMaskGroup.add(inputMaskLabel, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.weightx = 1;
        inputMaskGroup.add(inputMaskComboBox, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2;
        gbc.gridheight = 1;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        inputMaskGroup.add(inputMaskLineEdit, gbc);


        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        accessGroup.add(accessLabel, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.weightx = 1;
        accessGroup.add(accessComboBox, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2;
        gbc.gridheight = 1;
        gbc.weighty = 1;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        accessGroup.add(accessLineEdit, gbc);

        //////////////////////////////////////////////
        getContentPane().setLayout(new GridBagLayout());
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        getContentPane().add(echoGroup, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        getContentPane().add(validatorGroup, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        getContentPane().add(alignmentGroup, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 0;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        getContentPane().add(inputMaskGroup, gbc);
        gbc = new GridBagConstraints();
        gbc.gridx = 1;
        gbc.gridy = 1;
        gbc.weightx = 1;
        gbc.fill = GridBagConstraints.BOTH;
        getContentPane().add(accessGroup, gbc);
        setTitle("Line Edits");
    }

    public void echoChanged(int index) {
        /*switch (index) {
            case 0:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.Normal);
                break;
            case 1:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.Password);
                break;
            case 2:
                echoLineEdit.setEchoMode(QLineEdit.EchoMode.NoEcho);
        }*/
    }

    public void validatorChanged(int index) {
        /*switch (index) {
            case 0:
                validatorLineEdit.setValidator(null);
                break;
            case 1:
                validatorLineEdit.setValidator(new QIntValidator(validatorLineEdit));
                break;
            case 2:
                validatorLineEdit.setValidator(new QDoubleValidator(-999.0, 999.0, 2, validatorLineEdit));
        }

        validatorLineEdit.setText("");*/
    }

    public void alignmentChanged(int index) {
        /*switch (index) {
            case 0:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignLeft));
                break;
            case 1:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignCenter));
                break;
            case 2:
                alignmentLineEdit.setAlignment(new Qt.Alignment(Qt.AlignmentFlag.AlignRight));
        }*/
    }

    public void inputMaskChanged(int index) {
        /*switch (index) {
            case 0:
                inputMaskLineEdit.setInputMask("");
                break;
            case 1:
                inputMaskLineEdit.setInputMask("+99 99 99 99 99;_");
                break;
            case 2:
                inputMaskLineEdit.setInputMask("0000-00-00");
                inputMaskLineEdit.setText("00000000");
                inputMaskLineEdit.setCursorPosition(0);
                break;
            case 3:
                inputMaskLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");
        }*/
    }

    public void accessChanged(int index) {
        switch (index) {
            case 0:
                accessLineEdit.setEditable(true);
                break;
            case 1:
                accessLineEdit.setEditable(false);
        }
    }

    public static void main(String args[]) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame f = new JavaLineEdits();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setLocationByPlatform(true);
        f.setVisible(true);
    }
}


Терпения не хватило работать с GridBagLayout, но смысл примерно тот же, может у Java задача проще, ибо приходится меньше изменять размеры.
1. В Qt все отступы уже продуманы, не надо работать с Insets
2. В Qt сложную GUI сетку можно сделать проще чем в SWING

Теперь диагноз: в целом после растягиваний Qt программки остаются приятные ощущения, усталости не наблюдается. При работе с SWING программой весь экран содрагается в очень частой перерисовке (перерисовывается не только окно программы, но и весь рабочий стол и его приложения), остается ощущение неполноценности и ущербности, хочется быстрей бежать от такоо приложения.

Это сообщение отредактировал(а) Platon - 11.3.2008, 09:02
PM MAIL ICQ   Вверх
ochnev
Дата 10.3.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Я заметил, что после перехода с JDK 5 на 6 стал быстрее запускаться Tomcat.

PM MAIL   Вверх
Platon
Дата 11.3.2008, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



JDK 6 продвинулся и в SWING, но всё равно недостаточно.
Пожалуй, Всё таки не буду торопиться осваивать Jambi, дождусь Семерки.

Это сообщение отредактировал(а) Platon - 11.3.2008, 09:59
PM MAIL ICQ   Вверх
Platon
Дата 18.3.2008, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



PM MAIL ICQ   Вверх
LSD
Дата 18.3.2008, 20:09 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Platon @  18.3.2008,  19:22 Найти цитируемый пост)
Burn, Burn!!!

1. Замечание верное, но в свете принципа 10/90 этот эффект можно нивелировать.
2. Есть такой момент, но приведение вниз можно делать без того алгоритма который том описан. Да и пользы от проверки явно больше.
3. Согласен с тем что больше, но вот насчет свопа он загнул. Из реальных приложений пожалуй только IDE могут сожрать столько памяти.
4. Общие рассуждения без конкретики.
5. Пусть для начала покаже компилятор C++ который сможет провести такую оптимизацию.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Bozo
Дата 21.3.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Цитата
Burn, Burn!!! 

Последнее изменение страницы было 20 июля 2005 г. 17:35:22 А написано толи в 2001 толи в 2003 году, инфа давно устарела
PM   Вверх
Platon
Дата 3.4.2008, 12:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Еще подкину дров не столько по скорости, сколько вообще о целесообразности в целом.
Open Office как известно разрабатывается Солнышком, но вот вопрос, dll библиотек там более чем на 100 метров, jar файлов - на 8, и как это понять, смысл вообще писать на Java если несмотря на окрещение ОО как кросплатформенное ПО, он таким не является?
PM MAIL ICQ   Вверх
w1nd
Дата 4.4.2008, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Platon @  3.4.2008,  12:18 Найти цитируемый пост)
Open Office как известно разрабатывается Солнышком, но вот вопрос, dll библиотек там более чем на 100 метров, jar файлов - на 8, и как это понять, смысл вообще писать на Java если несмотря на окрещение ОО как кросплатформенное ПО, он таким не является? 

OO - не java-приложение.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Zandr
Дата 5.6.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: 9
Всего: 13



Platon, попробуй TableLayout и будет тебе счастье
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1133 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.