MQL4 , JDK1.4.2 и прочие : сравнение скорости

 
Не смог добавить в архиве форума - "MQL4, MQL2, EasyLanguage, Wealth-Lab 3.0 и VC++: сравнение скорости"
Думаю, не помешает добавить и сравнение с Java.

public class Test {
    public static void main(String[] args)
    {   int i,res_int=0;
        double res_double=0.0;
        long  t0,t1;
        t0=System.currentTimeMillis();
        for (i=0;i<=10000000;i++){
            res_int+=i*i;
            res_int++;
            res_double+=i*i;
            res_double++;

        }
        t1=System.currentTimeMillis();
        //System.out.println("Hello, world!\n");
        System.out.println("Затрачено "+java.text.DecimalFormat.getInstance().format(t1-t0)+" миллисекунд");
        System.out.println("ResInt="+res_int+"  ResDouble="+res_double);
    }
}



1-ый прогон:
Затрачено 313 миллисекунд
ResInt=-752584127 ResDouble=1.7247836076609E13

2-ой прогон:
Затрачено 375 миллисекунд
ResInt=-752584127 ResDouble=1.7247836076609E13

3-ий прогон
Затрачено 375 миллисекунд
ResInt=-752584127 ResDouble=1.7247836076609E13


PS Pentium Celeron-2000

 
Не смог добавить в архиве форума - "MQL4, MQL2, EasyLanguage, Wealth-Lab 3.0 и VC++: сравнение скорости"
Думаю, не помешает добавить и сравнение с Java.

Попробуем прогнать на том же компьютере, где и остальные тесты шли. Спасибо.
 

        System.out.println("Затрачено "+java.text.DecimalFormat.getInstance().format(t1-t0)+" миллисекунд");
}




Rosh, а зачем для вывода long ты используешь java.text.DecimalFormat.getInstance().format(t1-t0)? Любители покритиковать java будут теперь говорить, что в java даже числа удобно на консоль не выведешь.
 
Изначально выводилось значение (t1-t0)/1000 , то есть в секундах, а потом увидел, что тесты в миллисекундах и переделывать не стал.
А вообще, это мое второе упраженение в Java, так что по голове сильно бить не надо :)))
 
Я тут продолжил опыты с измерением скорости и получил странные результаты
Если кто может объяснить - ответьте в той ветке, чтобы не разводить флейм.
 
Да без проблемм :)
наверное свой сайт рекламируешь ;)
 
Да без проблемм :)
наверное свой сайт рекламируешь ;)

Тогда ответь здесь, чтоб рекламы не было. Мне все равно, где родиться истина. Если ветку из-за этого не прикроют (не в тему).
 
Я не спец в производительности java кода. Хз вобщем :) Вот если спросишь про оракл или mssql.. или с++ тада смогу помочь если захочу :)
 
Я тут продолжил опыты с измерением скорости и получил странные результаты
Если кто может объяснить - ответьте в той ветке, чтобы не разводить флейм.


В SWING-приложениях используется как минимум на 1 поток больше - события клавиатуры и т.п. обрабатыватся в своем потоке, поэтому за время работы программы диспетчер будет распределять процессорное время между потоками. Делать он это может по разному в зависимости от внешних условий. Из-за этого и может возникать разница в замерах, особенно это будет заметно, если вычисления требуют мало времени.
 
Я тут продолжил опыты с измерением скорости и получил странные результаты
Если кто может объяснить - ответьте в той ветке, чтобы не разводить флейм.


В SWING-приложениях используется как минимум на 1 поток больше - события клавиатуры и т.п. обрабатыватся в своем потоке, поэтому за время работы программы диспетчер будет распределять процессорное время между потоками. Делать он это может по разному в зависимости от внешних условий. Из-за этого и может возникать разница в замерах, особенно это будет заметно, если вычисления требуют мало времени.

То есть, если я правильно понял, лучше всего создать новый Класс с минимальным блоком прослушивания и все тяжелые вычистения разместить там?
 
То есть, если я правильно понял, лучше всего создать новый Класс с минимальным блоком прослушивания и все тяжелые вычистения разместить там?


В каком классе расположен тестовый код значения не имеет. Важно сколько потоков в данный момент работает. Если все вычисления делать в main() методе или другом вызываемом из него, но ДО создания UI, то результаты тестирвоания должны быть идентичны с консольным приложением.