powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Visual Studio 2008 Vs Java ?
14 сообщений из 89, страница 4 из 4
Visual Studio 2008 Vs Java ?
    #35137494
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Dan Black
>Какие исходные условия?
Уточните пожалуйста Ваш вопрос.
С уважением, Владимир.
В вашей терминологии это называется окружением.
Если результаты по тестам Visual Studio 2008 C# у меня примерно такие же, то по яве совсем другая картина. Поэтому и интересно, что за окружение и всё такое.
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35137515
AMD64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dan Black ВМоисеев>Dan Black
>Какие исходные условия?
Уточните пожалуйста Ваш вопрос.
С уважением, Владимир.
В вашей терминологии это называется окружением.
Если результаты по тестам Visual Studio 2008 C# у меня примерно такие же, то по яве совсем другая картина. Поэтому и интересно, что за окружение и всё такое.У меня тоже. Он похоже запускал тест, не выходя из VS и NetBeans соответственно.

Если запускать тесты отдельно, то java -client vs .NET паритет, java -server выигрывает в 1.5 раза. Резалты позже выложу

А все таки, как использовать этот Stopwatch?
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35137558
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AMD64[
Если запускать тесты отдельно, то java -client vs .NET паритет, java -server выигрывает в 1.5 раза.


Чтобы корректно сравнить -server, надо .NET приложение NGEN ом отфигачить
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35137631
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>AMD64
>...Он похоже запускал тест, не выходя из VS и NetBeans соответственно.
Вы правы.
Компьютер у меня хиленький - amd1600+ и 512MB. Работает сеть, DrWeb и AusLogics BoostSpeed.
Всё дело видимо в том, как и где хранится массив. Смею предположить, что Java хранит его в стеке, .Net Framework - в куче.
Это весьма серьёзные и достойные технологии - Java и .Net. Вряд ли одна позволит другой далеко оторваться по производительности. Но хорошо зная достоинства одной и недостатки другой, можно написать тесты с предсказуемыми результатами. Вот результат исходного тестового примера в тех же условиях (С# уступает примерно 20%):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
import java.util.Random;

public class  NewClass {
  private static int L =  50000 ;    
  public static void main(String[] args) {
    for (int i =  0 ; i <  5 ; i++) foo();
  }
  public static void foo(){
    double dBegin = System.currentTimeMillis();
    int[] array = new int[L];
    Random r = new Random();
    for (int i =  0 ; i < array.length; i++) array[i] = r.nextInt( 10000 );
    for (int y =  0 ; y < array.length -  1 ; y++)
    for (int x =  0 ; x < array.length- 1 ; x++) {
      if (array[x] < array[x +  1 ]) {
        int tmp = array[x];
        array[x] = array[x +  1 ];
        array[x +  1 ] = tmp;
      }
    }
    double dEnd = System.currentTimeMillis();
    System.out.println(dEnd - dBegin + "   ");
  }
}
25422.0
26187.0
26641.0
26656.0
26625.0

С уважением, Владимир.
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35139732
0bsid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>
Всё дело видимо в том, как и где хранится массив. Смею предположить, что Java хранит его в стеке, .Net Framework - в куче.

в Java массив также лежит в куче
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35140064
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>0bsid
>в Java массив также лежит в куче
Свежие мысли отсутствуют. Жду Вашего предположения.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35140836
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
import java.util.Random;

public class  NewClass {
  private static int L =  50000 ;    
  public static void main(String[] args) {
    for (int i =  0 ; i <  5 ; i++) foo();
  }
  public static void foo(){
    double dBegin = System.currentTimeMillis();
    int[] array = new int[L];
    Random r = new Random();
    for (int i =  0 ; i < array.length; i++) array[i] = r.nextInt( 10000 );
    for (int y =  0 ; y < array.length -  1 ; y++)
    for (int x =  0 ; x < array.length- 1 ; x++) {
      if (array[x] < array[x +  1 ]) {
        int tmp = array[x];
        array[x] = array[x +  1 ];
        array[x +  1 ] = tmp;
      }
    }
    double dEnd = System.currentTimeMillis();
    System.out.println(dEnd - dBegin + "   ");
  }
}
25422.0
26187.0
26641.0
26656.0
26625.0


На Xeon 2.8гц имеем для данного кода:
Java 1.5 ~18500

Если внести изменение:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 import  java.util.Random;

 public   class  NewClass
{
     private   static   int  L =  50000 ;

     public   static   void  main(String[] args)
    {
         for  ( int  i =  0 ; i <  5 ; i++)
        {
             [b]long [/b] start = System.currentTimeMillis();
            foo();
             [b]long  [/b]end = System.currentTimeMillis();
            System.out.println(end - start);
        }
    }

     public   static   void  foo()
    {
         int [] array =  new   int [L];
        Random r =  new  Random();
         for  ( int  i =  0 ; i < array.length; i++) array[i] = r.nextInt( 10000 );
         for  ( int  y =  0 ; y < array.length -  1 ; y++)
        {
             for  ( int  x =  0 ; x < array.length -  1 ; x++)
            {
                 if  (array[x] < array[x +  1 ])
                {
                     int  tmp = array[x];
                    array[x] = array[x +  1 ];
                    array[x +  1 ] = tmp;
                }
            }
        }
    }
}

То уже ~ 17500.


Если пересесть на java 1.6.0_03, то ~ 14000... (никак эскейп анализ порулил?).

Вспоминаем о -server. Добавляем модификар final к константе L (чтобы jit оптимизатор меньше втыкал, прежде чем наберёт статистику о длинне массива и перейдёт из режима интерпретации к выполнению нативного кода) и запускаем:


C:\>"C:\program files\Java\jdk1.6.0_03\bin\java" -server -classpath . NewClass
7782
6843
7031
7125
6938


Вот и думай после этого, кто на свете всех быстрее, всех милее и моднее :)
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35142827
AMD64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beluginЧтобы корректно сравнить -server, надо .NET приложение NGEN ом отфигачитьNGEN это AOT. -server это точно AOT? NotGonnaGetUsВот и думай после этого, кто на свете всех быстрее, всех милее и моднее :)
http://www.everfall.com/paste/id.php?ikt9xx6qc3pk

C:\Test> java -server NewClass2
5172.0
5172.0
4453.0
4453.0
4438.0

C:\Test> java NewClass2
6391.0
6406.0
6406.0
6407.0
6406.0

C:\Test> C:\Sun\Java\jdk1.7.0\bin\java -server NewClass2
4328.0
4328.0
4156.0
4188.0
4187.0

C:\Test> C:\Sun\Java\jdk1.7.0\bin\java NewClass2
4344.0
4375.0
4156.0
4156.0
4172.0

C:\Test> C:\Sun\Java\jdk1.7.0\bin\java -client NewClass2
4313.0
4328.0
4172.0
4187.0
4172.0

Java 7 одинаково хорошо оптимизирует код и в client и в server режиме, лучше чем 1.6.04

C:\Test> C:\Sun\Java\jdk_x64\bin\java -server NewClass2
4219.0
4235.0
4328.0
4343.0
4329.0

C:\Test> C:\Sun\Java\jdk_x64\bin\java NewClass2
4235.0
4203.0
4328.0
4344.0
4343.0
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35142847
AMD64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.everfall.com/paste/id.php?wde3aexmed1x

C:\Test> java -server NewClass
6219.0
6172.0
4187.0
4188.0
4172.0

C:\Test> java NewClass
6844.0
6828.0
6343.0
6329.0
6296.0

C:\Test> C:\Sun\Java\jdk_x64\bin\java -server NewClass
7828.0
4328.0
4172.0
4156.0
4172.0

C:\Test> C:\Sun\Java\jdk_x64\bin\java -client NewClass
7812.0
4328.0
4188.0
4172.0
4156.0

C:\Test> C:\Sun\Java\jdk1.7.0\bin\java -server NewClass
10437.0
4375.0
4328.0
4328.0
4297.0

C:\Test> C:\Sun\Java\jdk1.7.0\bin\java NewClass
10344.0
4328.0
4297.0
4313.0
4312.0
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35143201
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>NotGonnaGetUs
>Вот и думай после этого, кто на свете всех быстрее, всех милее и моднее :)
В режиме server, Java не прекращает ли проверку выхода индекса за границы?

С уважением, Владимир.
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35143319
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, а чего вы к "скорости" прирезались?
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35143517
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевВ режиме server, Java не прекращает ли проверку выхода индекса за границы?

Не прекращает, но jit может "подумать" и отключить её предварительно убедившись в том, что выхода точно не будет.
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35143525
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AMD64http://www.everfall.com/paste/id.php?wde3aexmed1x

C:\Test> java -server NewClass
6219.0
6172.0
4187.0
4188.0
4172.0


А какие параметры машинки?
...
Рейтинг: 0 / 0
Visual Studio 2008 Vs Java ?
    #35145894
AMD64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, а чего вы к "скорости" прирезались?А что еще меряют? Вот тут тоже скорость измеряют
NotGonnaGetUs AMD64http://www.everfall.com/paste/id.php?wde3aexmed1x

C:\Test> java -server NewClass
6219.0
6172.0
4187.0
4188.0
4172.0


А какие параметры машинки?C2D E6600@3400MHz.
...
Рейтинг: 0 / 0
14 сообщений из 89, страница 4 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Visual Studio 2008 Vs Java ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]