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

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

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

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

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

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

Metallic
()

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

anonymous
()

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

anonymous
()

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

Metallic
()

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

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

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

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

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

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

Deleted
()

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

sv75 ★★★★★
()

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

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

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

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

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

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

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

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

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

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

r ★★★★★
()

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

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

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

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

kda ★★★★★
()

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

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

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

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

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

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

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

r ★★★★★
()

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

tim239 ★★
()

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

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

xintrea
()

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

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

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

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

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

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

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

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

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

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

lester ★★★★
()

>Just use C++.

+1024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

D?:)

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

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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.