Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разное тестирование > Java vs. Си++


Автор: sergejzr 1.11.2005, 22:10
Итак нужны желающие, кто проработает эту тему "http://forum.vingrad.ru/index.php?showtopic=24644" и приведёт её к удобночитаемому виду. Работать можно здесь: http://wiki.vingrad.ru/index.php/Java_vs_Cpp, дискутировать в этой теме.

Автор: Ignat 2.11.2005, 13:15
sergej.z, там же вроде только об Яве речь...

Автор: sergejzr 2.11.2005, 13:25
Да, не ту тему скопировал smile сейчас ок.

Автор: LSD 2.11.2005, 17:59
Предлагаю сделать как уже было: формулируем задание, Java-шники воплощают свою чатсь, Си-шники свою, выкладываем сюда, и все желающие прогоняют у себя тесты. После чего усредняем результат и вывешиваем его, если у кого-то получаются сильно отличающиеся от остальных результаты, то их в расчет не берем.

Теперь по поводу самих тестов, предлагаю следующие:
- чисто вычислительный тест, некий ресурсоемкий математический алгоритм
- активная работа с памятью: сортировка массива
- работа с объектами: активно создаем и уничтожаем объекты

Частично эти тесты уже есть, надо только их причесать и выложить чтоб народ прогнал у себя.

Автор: sergejzr 2.11.2005, 18:07
Отлично! Но желательно тестить и то и другое на одной машинке.

Автор: LSD 2.11.2005, 18:12
Цитата(sergej @ 2.11.2005, 18:07)
Но желательно тестить и то и другое на одной машинке.

Это обязательно, ведь машины у всех разные. Значение будет иметь только соотношение: язык такой-то быстрее на 5%.

Автор: nikitao 2.11.2005, 19:36
Цитата
Это обязательно, ведь машины у всех разные. Значение будет иметь только соотношение: язык такой-то быстрее на 5%.

Это значительно сужает круг тех кто будет тестить ибо обычно стоит что-то одно. smile


Надо еще договариваться о компеляторах и ОСЯх(не знаю как с Java,но для С++ это очень важно) smile

Автор: Void 2.11.2005, 19:49
Цитата(nikitao @ 2.11.2005, 21:36)
Это значительно сужает круг тех кто будет тестить ибо обычно стоит что-то одно.

Ну у меня лично JDK прекрасно уживается с зоопарком компиляторов C++ smile Можно сделать пару бинариков для общего тестирования, а желающие могут выкручивать оптимизации на максимум у своих компиляторов.
Цитата(nikitao @ 2.11.2005, 21:36)
Надо еще договариваться о компеляторах и ОСЯх(не знаю как с Java,но для С++ это очень важно)

Думаю, надо просто составить форму обязательных данных:
Железо: процессор (модель, частота, объем кэша), память (объем, частота, м/б тайминги), возможно чипсет
ОС
Версия компилятора и полные ключи компиляции.

При наличии всего этого уже можно будет составлять сводную таблицу.

Надо также договориться крутить тесты только в отсутствие фоновых задач, и прогонять каждый тест несколько раз. Первые 1-2 результата отбрасывать. Для оставшихся считать среднее (желающие могут посчитать также среднеквадратичное отклонение smile ).

Автор: sergejzr 2.11.2005, 19:58
Круг тестирующих нам не важно расширять, достаточно 2-3. А вот достоверность тестов важна!

Действие будет проходить в 4 этапа:
  1. Первым делом нужны исходники для тестов под эти языки
  2. Затем будут нужны бинарники для различных осей созданные различными компиляторами
  3. Затем раздача и тестирование.
  4. Описание процесса и результатов
Весь процесс самого тестирования ведётся в http://wiki.vingrad.ru/index.php/Java_vs_Cpp. Конечно оформленная статья публикуется на форуме.

Итак, кто хочет взять на себя шевство? smile

Автор: nikitao 2.11.2005, 20:44
Я бы еще дабавил что нужна некая группа "людей-анализвторов",которые будут аналезировать полученные результаты и выдовать общий результат,резюме.Одно дело когда итоги просто предствлены в виде таблицы,совсем другое когда эта таблица проаналезирована и осмыслена специальноподготовленной группой людей. smile

Автор: sergejzr 2.11.2005, 20:55
Это и означает шевство. Ты Викину страницу читал?

Автор: Любитель 24.6.2006, 02:22
А почему тема умерла?  smile 
Как то случайно заглянул - заинтересовало  smile  

Автор: powerOn 13.7.2006, 22:39
Мне тоже эта тема интересна. 
//

Думаю, что для оценки скорости работы достаточно несложных алгоритмов. Вот мои предложения:

Цитата(LSD @  2.11.2005,  18:59 Найти цитируемый пост)
- чисто вычислительный тест, некий ресурсоемкий математический алгоритм

можно попробовать некоторые алгоритмы с матрицами, например перемножение 2 матриц размерностью 1000х1000; При этом можно использовать различиные типы данных (int, long, float, double). Значения матриц получаются случайной генерацией.

Цитата(LSD @  2.11.2005,  18:59 Найти цитируемый пост)
активная работа с памятью: сортировка массива

ИМХО, здесь в самый раз какой-нибудь классический медленный алгоритм сортировки, например выбором или пузырыком. Значения массивов можно задать как наихудшие варианты для данного алгоритма (допустим массив отсортирован в обратном порядке).

Цитата(LSD @  2.11.2005,  18:59 Найти цитируемый пост)
работа с объектами: активно создаем и уничтожаем объекты

Тут у меня пока немного идей. Вероятно, досаточно написать некоторый сложный объект, включающий в себя поля с различными типами данных, которые в конструкторе будут инициализироваться простыми значениям и выполнять его создание/уничтожение ( в java с последним интересно будет) наццать сотен тысяч раз.

Время всех тестов измеряем в миллисекуднах.

Впринципе, могу даже что-нибудь реализовать.  smile 


 

Автор: sergejzr 14.7.2006, 12:14
Цитата(MoonCat @  13.7.2006,  20:39 Найти цитируемый пост)
Впринципе, могу даже что-нибудь реализовать. 

Очень приветствуем smile

Добавлено @ 12:15 
Вообще, сюда бы ведущего, кто смог бы этот раздел развивать.. 

Автор: Mayk 22.7.2006, 21:39
Раз пока с ручными тестами глухо, есть
Предложение. Использовать автоматические генераторы тестов. 
Тем более что синтаксис у арифметических(да и логических) операций одинаков (в си разве что >>> нет).

Генератором мы создаем случайные выражения по типу "a[5]+a[12]/45+a[4]*a[i]" и пихаем их в сырцы .c и .java, которые исполняют эти выражения равное число раз.

Таймер запускаем перед вычислением выражений, остановливаем после вычисления. После остановки таймера можно сделать что-нибудь страшное с полученными данными, чтобы шибко умный оптимизатор не выкинул
рандомные выражения как неиспользуемые(напр. можно записать их в /dev/null)

Для нетерпеливых тестировать прямо здесь и сейчас в аттаче лежит набросок генератора , чтоб можно было оценить идею
(см !readme.1st в архиве)


ИМХО автоматические тесты не повредят. 
В частности в них мы можем порегулировать кол-во всяких операторов
(вы только представьте, мы сможем построить 
График-Отношения-Времени-Явы-Ко-Времени-Си-В-Зависимости-От-Количества-Операторов-Деления, а это безусловно то, о чём мечтали многие из нас с самого детства)


Что думаете на этот счёт? 
 

Автор: Академик 23.7.2006, 13:02
А что ты прилепил? Скачаю ка посмотрю. 

Автор: electrica 14.3.2011, 03:34
какая цена за работу ?

Автор: Pradit 1.7.2012, 21:58
очень интересная темка!интуитивно болею за Си)

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