Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > -server работает медленее -client ???


Автор: powerOn 11.4.2006, 21:40
Здравствуйте.
Я проводил тестирование скрости выполения JVM при мат вычислениях.
использовал это не большой тест:

Код

public class NewClass {
    
    /** Creates a new instance of NewClass */
    public NewClass() {
    }
    public static void main(String[] args) {
            long t1 = System.currentTimeMillis();
            for (int i = 0; i < 5000000; i++) {
                double z = (Math.sin(i) * Math.cos(i+1))/Math.tan(i+2);
            }
            
            System.out.println(System.currentTimeMillis() - t1);
    }
}


запускал программу с ключом -client и -server несколько раз, в результате получал примерно след. результаты:
-client: 31976 ms
-server: 50303 ms

но теоритичекси так не должно быть.... smile не могу понять результатов.... почему?

Автор: LSD 11.4.2006, 22:04
У меня отставание не такое значительное, а использование strictfp вообще сводит его на ноль. Но в принципе по любому здесь основное время идет на вызов функций из StrictMath.

Автор: powerOn 11.4.2006, 22:16
Цитата

У меня отставание не такое значительное, а использование strictfp вообще сводит его на ноль. Но в принципе по любому здесь основное время идет на вызов функций из StrictMath.


А кто это, strictfp и StrictMath?

Автор: LSD 11.4.2006, 22:32
strictfp - это модификатор метода, который указывает что должно использоваться точная арифметика. Например х86 сопроцессоров числа с плавающей запятой имеют разрядность 80 бит, и если не округлять промежуточные резальтаты, то результат может получиться иным, нежели на сопроцессоре с 64 битными числами.

StrictMath - класс который на самом деле используется для математических расчетов. Насколько я знаю, там некая кроссплатформеная библиотека на C++, которая всегда дает одинаковые результаты вычислений.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)