LINUX.ORG.RU

C vs. JVM's benchmark

 , ,


1

0

Стэфан Краузе в своём блоге
http://www.stefankrause.net/
опубликовал новые тесты производительности кода, написанного на C и на Java.

В тесте используются компилятор GCC 4.2.3 и различные версии JVM (Sun JDK 6, IBM JDK 6, Excelsior JET, Apache Harmony, BEA JRockit).

Тесты проводились на ноутбуке Dell Insprion 9400 с 2GB RAM и процессором Intel Core 2 2GHz под Ubuntu 8.04 (x86). Исходные коды прилагаются.

>>> Подробности

Ответ на: комментарий от orcy

> Вот меня реально раздражают красноглазые яватроли которые удверждают на плюсах программить трудозатрат больше чем на яве.

А меня реально раздражают идиоты, причёсывающие все языки и типы задач под одинаковую, абсолютную(по их мнению) гребёнку.

gaa ★★
()
Ответ на: комментарий от Sidrian

>Простите, но главный жабатроль тут уже неоднократно рассказывал, как он класно с жабой на десктопе в 90 работал. Кому верить? И вообще я думал, что в те далекие времена слабых компов жаба своей замечательной JIT-оптимизацией должна была быть единственым спасением и лучом света в темном царстве?

JIT в 90-е еще не было.

>>Хватит лохматить бабушку. Сейчас инстант мессенждер жрет больше памяти чем было на моем компе в 99 году на котором работала жаба и запускалось E14.

А? Шо? Неужели гном начали в 99-м году писать? Мобыть в 99-м JIT уже и появился

Karapuz ★★★★★
()
Ответ на: комментарий от gaa

>А что показательного? Крикуны засунули язык в задницу и удалились, а знающие люди либо не слышали, либо не были к этому мотивированы.

Показательно, что за Си/Си++ почему-то крикуны в первую очередь выступились, а люди адекватные - не выступили. Заметь, повторюсь, я не говорю, что Си лучше или хуже, более того, говорю, что готовое решение на Си должно быть лучше. Я только говорю, что почему-то до сишников адекватных не удалось достучаться или замотивировать их :D

>Почти уверен, что если б была готовая реализация на С++ и требовалось бы написать подобное на жабопитоне, то и там бы решения не образовалось :)

Если задача интересная - почему бы и нет? Я же писал на Питоне, когда уже было решение на Java? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от gaa

>Да, эклипс и idea -- это главные фетиши явистов.

>Не приходило в голову, что эти IDE удобны для жавы, причём именно в силу особенностей жавы? Для shell/tcl/perl/pascal/чего_угодно_ещё эти "IDE" будут всего лишь оченб-оченб тормозным редактором с подсветкой синтаксиса.

Приходило. А зачем нужны все эти "/tcl/perl/pascal/чего_угодно_ещё"? Какая ниша у паскаля? Типа фетиша?

Karapuz ★★★★★
()
Ответ на: комментарий от tailgunner

>> 2) я сказал что перформанс не сдерживает использование SQL, несмотря на то что ДБ-сервера это самое тормозящее звено во всех приложениях которые используют базы данных.

>Не имеет никакого отношения к делу.

Определенное отношение к делу все же есть. В случае с SQL Cost Based Optimizer строит план выполнения запроса, и по мере изменения объемов данных в БД строит наиболее эффективный план выполнения запроса. В случае с жабкой и прочими VM роль CBO выполняет JIT/Hotspot который в рантайме следит за работой managed кода и генирирует подходящий к задаче нативный код.

Absurd ★★★
()
Ответ на: комментарий от anonymous

Пакеты? Перевожу: он против того что в последнее время в жабу пихают все фичи из всех языков типа замыканий, каррингов, выведения типов, и прочего мрака для эстетов и академиков CS типа Луговского

Karapuz ★★★★★
()
Ответ на: комментарий от KRoN73

> Показательно, что за Си/Си++ почему-то крикуны в первую очередь выступились, а люди адекватные - не выступили.

Крикуны -- в каждой бочке затычка. Потому не показательно. Вот можно видеть как срефлексировали крикуны на слово pascal :)

> Я только говорю, что почему-то до сишников адекватных не удалось достучаться или замотивировать их :D

Может потому, что они и так знают длину своей виртуальной пиписьки? ;)

> Если задача интересная - почему бы и нет?

Задача, написанная для того, чтобы лишний раз доказать нечто, очевидное даже организатору, может быть интересной? Субъективно для меня -- нет.

gaa ★★
()
Ответ на: комментарий от Karapuz

> А зачем нужны все эти "/tcl/perl/pascal/чего_угодно_ещё"? Какая ниша у паскаля? Типа фетиша?

Это в гугль. Или в педивикию, на страницу языка, где рассказана его область применения.

gaa ★★
()
Ответ на: комментарий от gaa

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

Для меня - да :)

Кроме того, очевидно только предельное, решение, так сказать для «идеального плоского прямоугольного кота» (c) :)

А вот что получится на практике - на это, как раз, всегда интересно посмотреть. Ибо решение может быть весьма неожиданным...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Кроме того, очевидно только предельное, решение, так сказать для «идеального плоского прямоугольного кота» (c) :)

Не распарсил.

gaa ★★
()
Ответ на: комментарий от gaa

>Не распарсил.

«плоский прямоугольный кот весом 3кг» - это мем (из новостей, кажется, Ленты.Ру), взамен приевшегося сферического коня в вакууме :)

Выражаясь иначе - однозначно ясно, что идеальное решение на Си будет быстрее приведённого автором топика на Java. А вот в случае реального решения на Си - результат заранее непредсказуем.

KRoN73 ★★★★★
()
Ответ на: комментарий от VoDA

>> Любая задача, для которой требуется поддержка более чем одной архитектуры. теперь всё же ответишь на "Какие задачи, выполнение которых возможно осуществить на яве невозможно выполнить на Си?"

>Это что пренципиально не возможно написать на асме под несколько платформ? ;)

Ты тоже не различаешь понятия "платформа" и "архитектура"?

Led ★★★☆☆
()
Ответ на: комментарий от KRoN73

>>"одним и тем же бинарником" - высосанное из пальца условие.

>Нет. Это моя практика разработки. Очень удобная.

Странно от модератора видеть такое "толстое" передёргивание:

Условие => "удобная для меня практика"

:)

Led ★★★☆☆
()
Ответ на: комментарий от KRoN73

> «плоский прямоугольный кот весом 3кг» - это мем (из новостей, кажется, Ленты.Ру), взамен приевшегося сферического коня в вакууме :)

Про кота я всё понял ещё тогда :)

> Выражаясь иначе - однозначно ясно, что идеальное решение на Си будет быстрее приведённого автором топика на Java. А вот в случае реального решения на Си - результат заранее непредсказуем.

Тут работает самоконтроль. Типа как в физике: если расстояние между атомами получилось больше радиуса Земли, значит, наверно, что-то напутал. Ну и тут так же: если получилось медленнее жабки, то значит где-то ошибка :)

gaa ★★
()
Ответ на: комментарий от KRoN73

>На Си++ программировал более семи лет.

>Тем не менее, больше на нём не программирую.

>Не вижу смысла.

>Затраты на разработку не окупают эффект.

В большинстве случаев - не окупают, согласен.

ИМХО C++ всегда был узкоспециализированным языком. PR сделал из него "универсальный язык общего назначения". Тот же PR делает сейчас тоже самое с Java и C#. Главный лозунг "Java (.NET) - к каждой бочке затычка, больше ничего не нужно". Вот и смешно читать тут оболваненных "пророков":)

Led ★★★☆☆
()
Ответ на: комментарий от gaa

>Ну и тут так же: если получилось медленнее жабки, то значит где-то ошибка :)

Ну, тут на честность. Я бы выложил и более тормозное решение - опыт есть опыт.

...

Наверное, подожду до исполнения года тому топику и напишу сам, если так никто и не рискнёт. Посмотрим, что получится. Ох, и будет же волна дёгтемазания от «крутых сишников», если мой вариант медленнее Java выйдет :D

KRoN73 ★★★★★
()
Ответ на: комментарий от Led

>ИМХО C++ всегда был узкоспециализированным языком. PR сделал из него "универсальный язык общего назначения". Тот же PR делает сейчас тоже самое с Java и C#.

Да, где-то так и есть. Собственно, «общего языка для всего» нет с момента появения на свет Фортрана. До этого было проще - машкодам альтернативы не было :D А с этого знаменательного момента каждый язык стал хорош только для своих ниш.

Даже ещё острее - говорить о том, лучше или хуже тот или иной язык, лучше не на уровне ниш, а на уровне конкретных задач.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Писец, слили такой тред до конструктивного обсуждения =\

anonymous
()
Ответ на: комментарий от KRoN73

>Собственно, «общего языка для всего» нет с момента появения на свет Фортрана. До этого было проще - машкодам альтернативы не было :D А с этого знаменательного момента каждый язык стал хорош только для своих ниш.

О чём и речь. Я тоже активно использую язык для виртуальной машины - Erlang. И у него есть своя ниша (а не просто задачи), где конкурировать с ним трудно. Но мне смешно, когда недоязык (пародию на непрактичны академический язык C++), да ещё и с VM (пародию на Forth с отдельным стеком на каждый класс) - называют суперуниверсальной технологией, заменяющей всё. (Это я про Java, если ещё не догадался:))

Led ★★★☆☆
()
Ответ на: комментарий от Led

>Но мне смешно, когда недоязык (пародию на непрактичны академический язык C++), да ещё и с VM (пародию на Forth с отдельным стеком на каждый класс) - называют суперуниверсальной технологией, заменяющей всё. (Это я про Java, если ещё не догадался:))

Равно, как и мне смешно, когда язык с привычным синтаксисом, не самой плохой VM, приличной производительностью, массой развитых библиотек и реальной бинарной переносимостью называют недоязыком :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> язык с привычным синтаксисом, не самой плохой VM, приличной производительностью, массой развитых библиотек и реальной бинарной переносимостью

1) По сравнению с чем?

2) Какая VM есть хуже, чем "не самая плохая" JVM?

3) Любой синтаксис - привычен - для того, кто на нём давно пишет. Привычность - не показатель. Вот у меня есть привычка - курить. Поверь, это плохая привычка, несмотря на то, что мне курение доставляет пложительные эмоции:)

Led ★★★☆☆
()
Ответ на: комментарий от Led

>2) Какая VM есть хуже, чем "не самая плохая" JVM?

Ну, например, что на счёт VM у PHP? :)

>3) Любой синтаксис - привычен - для того, кто на нём давно пишет. Привычность - не показатель.

Показатель. Из-за синтаксиса я с лёгкостью в своё время перешёл на Java, сумев включиться в серьёзный проект буквально через пару дней после первого знакомства с ней, и из-за него же до сих пор не понимаю Эрланга :)

>Вот у меня есть привычка - курить. Поверь, это плохая привычка, несмотря на то, что мне курение доставляет пложительные эмоции:)

Ну, я тоже когда-то курил.

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Scala обходит даже сиране моно. А жаба обходит сиране D Digital Mars, который болтается где-то рядом с динозавром Интел Фортраном

Мы в этом топике вроде как исходим из того, что Жава - тормоз. Скала медленее Жавы.

Sidrian
()
Ответ на: комментарий от Karapuz

>А? Шо? Неужели гном начали в 99-м году писать? Мобыть в 99-м JIT уже и появился

Я Вам советую сходить на педивикию и просветится.

1.0 March 1999[14] First major GNOME release

Sidrian
()
Ответ на: комментарий от Sidrian

>Мы в этом топике вроде как исходим из того, что Жава - тормоз. Скала медленее Жавы.

Зато жаба быстрее D Digital Mars. Из этого следует, что D тоже тормоз?

// капча criteen какбэ намекает

anonymous
()
Ответ на: комментарий от Karapuz

>Какая ниша у паскаля? Типа фетиша?

Ниша Паскаля - массовое оболванивание студентов на просторах xUSSR.

Sidrian
()
Ответ на: комментарий от Led

>ИМХО C++ всегда был узкоспециализированным языком. PR сделал из него "универсальный язык общего назначения". Тот же PR делает сейчас тоже самое с Java и C#. Главный лозунг "Java (.NET) - к каждой бочке затычка, больше ничего не нужно". Вот и смешно читать тут оболваненных "пророков":)

Не бывает универсальных языков.

Sidrian
()
Ответ на: комментарий от Led

>Ошибся? Наверное, потому как для меня 5 звёздочек == модератор:)

Наверное у него просто Мака нет.

Sidrian
()
Ответ на: комментарий от anonymous

>Зато жаба быстрее D Digital Mars. Из этого следует, что D тоже тормоз?

Понятия не имею если честно. Собственно поэтому во флеймах "Кресты РИП у нас есть Д вс Д - недоделаня поделка" никогда не участвую.

Sidrian
()
Ответ на: комментарий от KRoN73

>Ну, я тоже когда-то курил.

А я когда-то активно писал на C++. Как и ты, я избавился от одной из двух вредних привычек:)

Led ★★★☆☆
()
Ответ на: комментарий от Sidrian

> Не бывает универсальных языков.

"универсальный" - это плохой перевод "general purpose", "общего назначения". Языки общего назначения существуют, и Си++ - один из них (Паскаль - тоже).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>"универсальный" - это плохой перевод "general purpose", "общего назначения". Языки общего назначения существуют, и Си++ - один из них (Паскаль - тоже).

Я бы сказал, что они не "существуют", а "претендуют".

Sidrian
()
Ответ на: комментарий от Sidrian

>>"универсальный" - это плохой перевод "general purpose", "общего назначения". Языки общего назначения существуют, и Си++ - один из них (Паскаль - тоже).

>Я бы сказал, что они не "существуют", а "претендуют".

Паскаль доказал это еще до твоего рождения. Си++ - тоже давно.

tailgunner ★★★★★
()
Ответ на: комментарий от Sidrian

> Как пафосно.

Ну извини, таковы факты. В отличие от глубокомысленных утверждений типа "не бывает универсальных языков", "ниша Паскаля - массовое оболванивание студентов на просторах xUSSR".

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>Я бы сказал, что они не "существуют", а "претендуют".

>Паскаль доказал это еще до твоего рождения. Си++ - тоже давно.

Не сказал бы что плюсы- язык общего назнчения, т.к по ним сразу виден спектр интересов Строуструпа - он писал программы которые считывали кастомные примитивы в текстовом виде со stdin, как-то итеративно пережевывали их используя перегруженные операторы, и выдавали на stdout. Скорее всего он делал язык на котором он смог бы в прошлом написать свой диплом идеально.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>Не сказал бы что плюсы- язык общего назнчения, т.к по ним сразу виден спектр интересов Строуструпа - он писал программы которые считывали кастомные примитивы в текстовом виде со stdin, как-то итеративно пережевывали их используя перегруженные операторы, и выдавали на stdout. Скорее всего он делал язык на котором он смог бы в прошлом написать свой диплом идеально.

Теилганер наверное сайты пишет на языке общего назначения - Паскале. И место шел-скриптов его юзает. Я вообще не понимаю как вменяемый человек может утверждать, что существуют языки общего назначения...

Sidrian
()
Ответ на: комментарий от Sidrian

> Теилганер наверное сайты пишет на языке общего назначения - Паскале. И место шел-скриптов его юзает.

Я вообще не "пишу сайтов", и в жизни не использовал Паскаля. Но я знаю, что на нем писали разное, от ядер ОС до компиляторов и ЭС, и этого мне достаточно, чтобы признать Паскаль языком общего назначения. Ну и про Си++ почти то же самое, только я его юзал лет 10 :)

> Я вообще не понимаю как вменяемый человек может утверждать, что существуют языки общего назначения...

Это не имеет отношения к вменяемости. Простые факты.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymousI

> Серверы надо разгружать, а не нагружать.

OMG! Ты что пил ?

iBliss
()
Ответ на: комментарий от Sidrian

Я может тебя удивлю, но на Дельфи (которая паскаль) писали сайты. И это было не сложнее, чем накидывать кнопки на форму, если мне не изменяет память. Нет в сайтах ничего особого, просто там много работы с текстом и удобнее использовать для этого скриптовые языки.

Legioner ★★★★★
()
Ответ на: комментарий от tailgunner

>Но я знаю, что на нем писали разное, от ядер ОС до компиляторов

ЛОЛ. "От ядер до компиляторов". Какой широкий спектр применения однако...

Sidrian
()
Ответ на: комментарий от Legioner

>Я может тебя удивлю, но на Дельфи (которая паскаль) писали сайты. И это было не сложнее, чем накидывать кнопки на форму, если мне не изменяет память. Нет в сайтах ничего особого, просто там много работы с текстом и удобнее использовать для этого скриптовые языки.

Ну а где-то просткакивал веб-сервер на шеле. Мало ли какие извращения бывают. Так можно доказать, что любой тьюринг полный ЯП - общего назначения.

Sidrian
()
Ответ на: комментарий от r

> Очень смешно.

Почитал два раза на ха-ха не пробило.

> чтобы он ругнулся на тему "ты фонты заэмбедить забыл - переделывай"

В таких конторах фонт-серверы есть, учитывая наличие маков - стопудово.

> А таких клиентов тыщи.

Сотни.

> Это во первых нереалистьично с точки зрения траффика

При нынешних гигабитных сетевухах ага

> и второе с точки зрения производительности

4-6 ниагар за глаза

> когда колбасить это будет клиентская машина.

В жабе ? Нах.

iBliss
()
Ответ на: комментарий от Sidrian

> ЛОЛ. "От ядер до компиляторов". Какой широкий спектр применения однако...

Это всего лишь две точки спектра, который гораздо шире. CAD-системы, системы компьютерной алгебры... собственно, чего тебе не хватает-то для "широкого спектра"?

tailgunner ★★★★★
()
Ответ на: комментарий от Legioner

> Я может тебя удивлю, но на Дельфи (которая паскаль) писали сайты. И это было не сложнее, чем накидывать кнопки на форму, если мне не изменяет память.

Ага, проект Baikonur.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.