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). Исходные коды прилагаются.

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

Re: C vs. JVM's benchmark

мдее... средняя температура по больнице?

eXOR ★★★★★ ()

Re: C vs. JVM's benchmark

А чего цомпилятор такой древний? Ветка 4.3 уже в продакшене сто лет как.

Gharik ()

Re: C vs. JVM's benchmark

Если бы он еще и потребление памяти померял :D

tailgunner ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от tailgunner

Re: C vs. JVM's benchmark

>Если бы он еще и потребление памяти померял :D

В комментах его блога тоже про это говорили :-)

Metallic ()

Re: C vs. JVM's benchmark

Как и ожидалось, жаба показала себя унылее некуда...

Ky6uk ()

Re: C vs. JVM's benchmark

Сравнил истребитель с черепахой.. :)

anonymous ()

Re: C vs. JVM's benchmark

опять фаллометрия..

anonymous ()

Re: C vs. JVM's benchmark

По ощущениям автор данного "сравнения" сам не понимает что он "измерял".

Metallic ()

Re: C vs. JVM's benchmark

Так ведь сертифицированные аналитики ЛОРа убедительно показали в своих мониторах, как жаба тормозит. И даже потыкали в нее палочкой.

И таки да, бенчмарки тоже поттверждают это

C это настоящий изыг для людей, для настоящих людей.

anonymous ()

Re: C vs. JVM's benchmark

Почему тогда эклипса еле ползает?

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>> Почему тогда эклипса еле ползает?

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

mironov_ivan ★★★★★ ()

Re: C vs. JVM's benchmark

Нахуа? По результатам исследования ядро перепишут на Яве или же JBoss на С?

sv75 ★★★★★ ()

Re: C vs. JVM's benchmark

Java никогда не догонит и тем более, никогда не перегонит, по скорости, потреблению памяти, простоте и изяществу грамотно написанный код на С

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>Java никогда не догонит и тем более, никогда не перегонит, по скорости, потреблению памяти, простоте и изяществу грамотно написанный код на С

Вот только "грамотно написанный код на C" пишется очень долго. :(

iZEN ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>Java никогда не догонит и тем более, никогда не перегонит, по скорости, потреблению памяти, простоте и изяществу грамотно написанный код на С

...в основном потому что неродился еще программист который в разумное время на С напишет то что пишут на жабе.

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от r

Re: C vs. JVM's benchmark

>простоте и изяществу грамотно написанный код на С

Да и на счет простоты и изящества ты загнул. А ну сложи 2 стринга переданных в качестве параметров:)?

r ★★★★★ ()

Re: C vs. JVM's benchmark

Хм... Очень интересно. Чесно говоря, скорость работы JVM от JET для меня явилась откровением. Обязательно посмотрю на этот продукт поближе.

kda ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

> Java никогда не догонит и тем более, никогда не перегонит, по скорости, потреблению памяти, простоте и изяществу грамотно написанный код на С

По ссылке сходи. Удивишься.

kda ★★★★★ ()

Re: C vs. JVM's benchmark

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

говорите за себя. на С реализовано намного больше функционала чем на жабе.( я имею ввиду что есть библиотеки для выполнения ЛЮБЫХ задач)

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от iZEN

Re: C vs. JVM's benchmark

Кем? Омериганскими профессорами? Вполне возможно. Но только не аналитиками сЛОРа. Спорим, уже завтра аналитки сЛОРа выпустят написанный на C blazingly fast аналог Эклипса? Который наконец будет летать и не будет тормозить и пусть весь мир подождет©, пока они напишут

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>говорите за себя. на С реализовано намного больше функционала чем на жабе.

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

r ★★★★★ ()

Re: C vs. JVM's benchmark

То-то я смотрю программы для ресурсоёмких расчетов на C и Fortran пишут.

tim239 ()

Re: C vs. JVM's benchmark

Апяць жабохоливар? Это уже скучно.

eduard_pustobaev ★★ ()

Re: C vs. JVM's benchmark

Ну скажем так - скорость работы алгоритма, скомпиленного в бинарные коды явамашины (и выполняющегося в явамашине) сравнима со скоростью скомпиленного в C++ кода (и выполнящегося непосредственно самим процом). А в некоторых случаях даже опережает.

При всех залипухах в ублюдском синтаксисе C/C++ и отсутсвии уборщика мусора, Ява предствляется достойным выбором. Кстати ява имеет бинарную совместимость на любых платформах искаропки. Чего нельзя сказать о сях. Не думал что когда-нить наступит время, когда алгоритм, выполняющийся через всякие прослойки-надстройки будет работать с такой же скоростью, будучи запущенный непосредственно на железе. Но сан сделал фантастику реальностью. Сану респект.

xintrea ()

Re: C vs. JVM's benchmark

> Да и на счет простоты и изящества ты загнул. А ну сложи 2 стринга переданных в качестве параметров:)?

char *message = malloc(strlen(text_1)+strlen(text_2)); strcpy(message, text_1); strcpy((message+strlen(text_1)), text_2);

P.S. набросал код прямо в окно, должен работать)))

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от r

Re: C vs. JVM's benchmark

> C - мрачно-страшный инструмент для реализации чего-либо более сложного чем прослойка между железкой и собственно программой.

s/более сложного/с более высоким уровнем абстракции

А то сложного там как бы ничего и нет, всё сложное внизу. ;-)

Bohtvaroh ★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

> char *message = malloc(strlen(text_1)+strlen(text_2)); strcpy(message, text_1); strcpy((message+strlen(text_1)), text_2);

Весьма изящно, да. :)

Bohtvaroh ★★★★ ()

Re: C vs. JVM's benchmark

зато быстро)))

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от r

Re: C vs. JVM's benchmark

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

для всяких быдлокодеров - да

lester ★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

#include <string>

...

s3 = s1 + s2;

Just use C++.

anonymous ()

Re: C vs. JVM's benchmark

А нафига -mfpmath=387, когда есть -mfpmath=sse, который теоретически быстрее?

Civil ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

не... быстрее сохранять размеры строк.

anonymous ()

Re: C vs. JVM's benchmark

>Just use C++.

+1024

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

> char *message = malloc(strlen(text_1)+strlen(text_2)); strcpy(message, text_1); strcpy((message+strlen(text_1)), text_2);

может он не будет работать правильно? - или кто забыл завершающий нолик в конце message при выделении памяти?

spigel ()
Ответ на: Re: C vs. JVM's benchmark от r

Re: C vs. JVM's benchmark

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

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

seiken ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>char *message = malloc(strlen(text_1)+strlen(text_2)); strcpy(message, text_1); strcpy((message+strlen(text_1)), text_2);

Образец красоты и изящества сложения 2х стрингов.

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от lester

Re: C vs. JVM's benchmark

> для всяких быдлокодеров - да

Человек который на С будет писать например вебприложение - не просто быдлокодер а быдлокодер шизонутый на всю голову.

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

>char *message = malloc(strlen(text_1)+strlen(text_2)); strcpy(message, text_1); strcpy((message+strlen(text_1)), text_2);

>P.S. набросал код прямо в окно, должен работать)))

Забыл в маллоке единицу для окончания строки выделить.

gogi ()
Ответ на: Re: C vs. JVM's benchmark от seiken

Re: C vs. JVM's benchmark

>Само наличие "всяких" говорит только о том, что программирование многогранно и по-своему уникально в каждой конкретной области

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

Приблизительно так:)

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от r

Re: C vs. JVM's benchmark

У нас для этого есть Wt! Just use C++

anonymous ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

Гыгы, а под нолик кто байт выделит? И, да, это не канает, не unicode-aware.

Legioner ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от gogi

Re: C vs. JVM's benchmark

>Забыл в маллоке единицу для окончания строки выделить.

К стати пример показательный. 2 строки нельзя сложить - уже задача.

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от kda

Re: C vs. JVM's benchmark

>> Java никогда не догонит и тем более, никогда не перегонит, по скорости, потреблению памяти, простоте и изяществу грамотно написанный код на С

>По ссылке сходи. Удивишься.

Толи java такая скоростная %), толи gcc никуда не годится O_o, к сожалению, толи проги так написаны:) Хорошо бы сравнить еще с сановским компилятором.

gaux ★★ ()
Ответ на: Re: C vs. JVM's benchmark от Legioner

Re: C vs. JVM's benchmark

>И, да, это не канает, не unicode-aware.

гыгы - ну что кто набросает список требований которые нужно учесть для складывания строк на сях? ;)

r ★★★★★ ()
Ответ на: Re: C vs. JVM's benchmark от xintrea

Re: C vs. JVM's benchmark

>При всех залипухах в ублюдском синтаксисе C/C++ и отсутсвии уборщика мусора, Ява предствляется достойным выбором.

D?:)

gaux ★★ ()
Ответ на: Re: C vs. JVM's benchmark от anonymous

Re: C vs. JVM's benchmark

void usage (char *name);

int main (int argc, char *argv[]) { int len[2]; char *string;

if (argc < 3) usage (argv[0]);

len[0] = argv[2]-argv[1]-1; len[1] = strlen (argv[2]); string = malloc (len[0] + len[1]); memcpy (string, argv[1], len[0]); memcpy (string+len[0], argv[2], len[1]); string[len[0]+len[1]] = 0;

printf ("String: %s\n", string);

return 0; }

void usage (char *name) { printf ("Usage: %s [STR1] [STR2]\n", name); exit (0); }

почему это работает?

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