powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Медленнее, чем на C
20 сообщений из 20, страница 1 из 1
Медленнее, чем на C
    #34943434
Born in U.S.S.R.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Средняя прога на Java отработает также в среднем на 20% медленней аналогичной на C.
Не на 20%, а в 4-8 раз медленнее. http://no-gritzko-here.livejournal.com/3725.html
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34943447
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- постарайтесь не писать "средних" программ
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34943458
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот код в исполнении автора — полное говно. Так писать нельзя:
Код: 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.
 import  java.util.*;

 class  Sorted {

 static   int  SIZE =  1000000 ;

 public   static   void  main (String [] args) {

String [] init =  new  String[SIZE];

 for  ( int  i= 0 ; i<SIZE; i++) {
	init[i] = "s" + i% 100  + (i+ 17 )% 37  + i;
}

System.out.println("init OK");

SortedSet<String> set =  new  TreeSet<String>();
 for  ( int  i= 0 ; i<SIZE; i++)
	set.add(init[i]);

System.out.println("add OK");

 for  (String s : set)
	 if  (s.startsWith("z") || s.charAt( 1 )=='f')
		System.err.println("ALARM!");

System.out.println("all OK");

}

}
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34943462
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не говоря уже о том, как замеряется время выполнения.

Рекомендую не верить проходимцам из LJ. Обманут, даже сами будучи уверены в своей правоте.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944165
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.
24.
25.
26.
27.
28.
29.
30.
31.
 import  java.util.*;

 class  Sorted {

 static   int  SIZE =  1000000 ;

 public   static   void  main (String [] args) {

String [] init =  new  String[SIZE];

 for  ( int  i= 0 ; i<SIZE; i++) {
	init[i] = "s" + i% 100  + (i+ 17 )% 37  + i;
}

System.out.println("init OK");

SortedSet<String> set =  new  TreeSet<String>();
 for  ( int  i= 0 ; i<SIZE; i++)
	set.add(init[i]);

System.out.println("add OK");

 for  (String s : set)
	 if  (s.startsWith("z") || s.charAt( 1 )=='f')
		System.err.println("ALARM!");

System.out.println("all OK");

}

}


А как можно? :) Тут только один минус - s.startsWith("z") - остальное в приделах нормы.

Второе решение на С выигрывает из-за того, что в нём сравниваются другие строки, без "+ i" в конце, что делает их существенно короче (а значит проще считать хешкод и т.д.).

Аналогичное исправление в java коде приводит к его ускорению в 5.5 раз и позвращает паритет :)
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944198
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
А как можно? :) Тут только один минус - s.startsWith("z") - остальное в приделах нормы.

Второе решение на С выигрывает из-за того, что в нём сравниваются другие строки, без "+ i" в конце, что делает их существенно короче (а значит проще считать хешкод и т.д.).

Аналогичное исправление в java коде приводит к его ускорению в 5.5 раз и позвращает паритет :)
А еще отказаться от TreeSet и написать
Код: plaintext
1.
2.
3.
4.
5.
Arrays.sort(init);

Set<String> set =  new  HashSet<String>(SIZE);
 for  ( int  i =  0 ; i < SIZE; i++)
	set.add(init[i]);
+ 30%
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944668
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологА еще отказаться от TreeSet и написать
Код: plaintext
1.
2.
3.
4.
5.
Arrays.sort(init);

Set<String> set =  new  HashSet<String>(SIZE);
 for  ( int  i =  0 ; i < SIZE; i++)
	set.add(init[i]);
+ 30%

Идея была в сравнении вставки в сортированный set (те самые красно-чёрные деревья) на java и с++.

Менять алгоритм нельзя. А то ведь с++ вариант тоже сменит алгоритм :)

Хотя твой вариант даже не эквивалентен исходному, т.к. в set все строки опять перемешаются...
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944693
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктологА еще отказаться от TreeSet и написать
Код: plaintext
1.
2.
3.
4.
5.
Arrays.sort(init);

Set<String> set =  new  HashSet<String>(SIZE);
 for  ( int  i =  0 ; i < SIZE; i++)
	set.add(init[i]);
+ 30%


Кстати, этот вариант оказывается в 2.5 раза медленнее, чем исходный с TreeSet, если откинуть i на конце собираемых строк. Правда удивительный результат? :)
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944695
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
Идея была в сравнении вставки в сортированный set (те самые красно-чёрные деревья) на java и с++.

Менять алгоритм нельзя. А то ведь с++ вариант тоже сменит алгоритм :)

Хотя твой вариант даже не эквивалентен исходному, т.к. в set все строки опять перемешаются...
Я не написал LinkedHashSet? Наверное, все и так поняли :)

Что касается скорости вставки — может таки померяем только её в таком случае?
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944715
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
Кстати, этот вариант оказывается в 2.5 раза медленнее, чем исходный с TreeSet, если откинуть i на конце собираемых строк. Правда удивительный результат? :)
Этот вариант я просто не проверял.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944788
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отстойный тест. Предлагаю другой:

нарисовать формочку с табличкой, в табличке две колонки "Имя" и "Фамилия". По щелчку заголовка табличка сортируется по имени или фамилии. Записей пусть будет миллион. Вполне реальная задача.

а эти арраи ни о чём не говорят, ерунда какая-то.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944817
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шариков
нарисовать формочку с табличкой, в табличке две колонки "Имя" и "Фамилия". По щелчку заголовка табличка сортируется по имени или фамилии. Записей пусть будет миллион . Вполне реальная задача .
Это такая же реальная задача, как и в топикстартере.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944910
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шариковотстойный тест. Предлагаю другой:

нарисовать формочку с табличкой, в табличке две колонки "Имя" и "Фамилия". По щелчку заголовка табличка сортируется по имени или фамилии. Записей пусть будет миллион. Вполне реальная задача.

а эти арраи ни о чём не говорят, ерунда какая-то.

В самом деле? А где предлагаешь хранить данные для этой таблички? В базе или всё-таки в арраях? :)

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

Если локально в aрраях - то чем эта задача отличается от тестовой? :)
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944934
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
данные можно хранить где угодно. Понятно что в склсервере надо хранить хотя кто как хочет. Для реализму можно добавить колонку с суммами, типа это список членских взносов во всесоюзном обществе филателистов.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34944976
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шариковданные можно хранить где угодно. Понятно что в склсервере надо хранить хотя кто как хочет. Для реализму можно добавить колонку с суммами, типа это список членских взносов во всесоюзном обществе филателистов.

Брр... Погоди.
Цель (довольно сомнительная) теста была в замере скорости работы одного и того же алгоритма написанного на разных языках.

Поэтому ты должен не говорить - можно так, а можно этак - а предоставить полное ТЗ:
- что должна делать программа
- какие будут использованны алгоритмы

Либо предложить референсную имплементацию на одном из языков, по которой можно будет восстановить тз.

Пока этого не случилось, можно утверждать, что никакого теста ты не предложил вообще и занимаешься не продуктивным дуплением клавиатуры :)

Я это к тому говорю, что если ты доведёшь постановку доконца, то увидишь, что всё сведётся к алгоритмам на тех же самых массивах.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34945066
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЦель (довольно сомнительная)

и что показывает этот тест? Что жаба медленнее чем Ц. Применительно к чему? Да ко всему, хоть в газете пропечатай.

Что покажет мой тест? То что в реальных приложениях (а учётные системы это основная масса приложений) жаба будет работать так же как и любое другое приложение. Если конечно на Ц вообще получится решить такую непосильную задачу как вывод в формочку большого количества записей.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34945308
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Born in U.S.S.R. Средняя прога на Java отработает также в среднем на 20% медленней аналогичной на C.
Не на 20%, а в 4-8 раз медленнее. http://no-gritzko-here.livejournal.com/3725.html
Погугли на тему Java Faster than C++. Найдешь тесты показывающее обратное. То что тестирует приведенный тест вообще никак не похоже на то что обычно отнимает процессорное время в Enterprise приложениях.
GC надо тестировать. ORM. И прочую ресурсоёмкую туфту.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34946014
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек-собака Шариков авторЦель (довольно сомнительная)

и что показывает этот тест? Что жаба медленнее чем Ц. Применительно к чему? Да ко всему, хоть в газете пропечатай.

Что покажет мой тест? То что в реальных приложениях (а учётные системы это основная масса приложений) жаба будет работать так же как и любое другое приложение. Если конечно на Ц вообще получится решить такую непосильную задачу как вывод в формочку большого количества записей.

Тест показывает, что реализации TreeSort на java и Set на c++ работают примерно с одинаковой скоростью. И всё.

Твой тест, если ты его всё-таки сформулируешь и дело дойдёт до сравнения, покажет скорее всего тоже самое - разница в скорости будет ~20%.

Подобные тесты служат обычно не для того, чтобы показать, что с++ быстрее java, а чтобы убедиться, что это отстование не критично :)
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34946038
324234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Born in U.S.S.R. Средняя прога на Java отработает также в среднем на 20% медленней аналогичной на C.
Не на 20%, а в 4-8 раз медленнее. http://no-gritzko-here.livejournal.com/3725.html
Офигеть, ну надо же. А я то думал, что APAB самый быстрый язык, после него ява, а только потом С.
...
Рейтинг: 0 / 0
Медленнее, чем на C
    #34946090
Фотография Человек-собака Шариков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТвой тест, если ты его всё-таки сформулируешь и дело дойдёт до сравнения, покажет скорее всего тоже самое - разница в скорости будет ~20%.

вряд ли. Думаю что и в 200% может быть в любую сторону. Смотря как делать.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Медленнее, чем на C
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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