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