Java faster tan C++ ?

21 отговора 2093 прегледа
#1

Java faster tan C++ ?

[линк]

Бре някой вярва ли на т'ва нящо?

Отговор
в отговор на Todor #2

Re: Java faster tan C++ ?

GCC е менте. Да ползва истински оптимизиращ компилатор и пак ще си говорим. Например Microsoft C++ 7.1 компилатора...

Отговор
в отговор на ironcode #3

Re: Java faster tan C++ ?

Абе квото ще да е менте, тия джавари са откъснати от реалността.



Отговор
в отговор на Todor #4

Re: Java faster tan C++ ?

Малиии - ма то на тая картинка на всички тестове Жабата по-бърза бе!

Логичнен въпрос когато човек види някакви тестове от резултати, е "Как си обяанявам това?"

Ти как си го обясняваш - със Сервер виртуалната машина която е по-бърза от клиент ВМ-то... да по-бърза е. Ама как е по-бърза от ц++ кода?

Предположения? Освен тези за енергии, бели братства, висш разум и т.н?

Значи нещата стоят така че дири да седнеш да напишеш компилатор за Жаба, без ВМ, просто да вади изпълним код за машината- пак няма да е по-бързо - най-малкото заради правилото "всичко в еиртуално" в жаба.

ето малко въпросче:
Кое е побързо?
а)
.....
mov eax,dword ptr [<адрес>]
mov edx,dword ptr [eax]
mov ecx,dword ptr [<адрес>]
call dword ptr [edx]

или
б)
mov ecx,dword ptr [<адрес>]
call <адрес>; например...


и двете ф-ии за без параметри за да няма пуш-ове...

в)
/*ниакав вм коде*/
designate vTable;
move fEntry, vTable[const]
move this__register, this
call fEntry

koito she se transformira v poweche redowe ot a), ili nai malkoto kolkoto nego...


Отговор
в отговор на Todor #5

iad vi e a?

typo li vi stana sega? aide niakoi .net-ajia da obiasni kak .net e 8 pyti po-byrz ot javata sega..

Отговор
в отговор на javar #6

Re: iad vi e a?

Ми разбира се, че .NET е по-бърз от Java-та, то въобще може ли да се води спор по въпроса???

Отговор
в отговор на ironcode #7

Re: iad vi e a?

Може разбира се.
Коя жава е по-бърза от кой .нет?
Не говорим за спецификации а за имплементации. Как можеш да кажеш
че дадена спецификация е по-бърза от друга?

Както виждаш човека сравнява две имплемнтации на виртуални машини.

Отговор
в отговор на Todor #8

Re: iad vi e a?

Ут дот нета по бързу нъ свитъ немъ пириъд ;-Р Квиту и дъ съ спицивикации пириъд И ут Ц пляс плас същу. А ут асенблер-а пък хич.

За тез дет ни знаиът пириъд = period = .

Ногу е топлу и мъ фана лигътъ...

Powered by telerik fuel. Sometimes by vodka.
Отговор
в отговор на BjarneStroustrup® #9

Re: Java faster tan C++ ?

Ima edin fakt, kojto malko hora otchitat. C++ se kompilira taka che da warwi na wsichki procesori, dokato JVM w momenta na izpalnenie gleda na kakwa mashina tochno warwi i move da optimizira psewdo koda za tochno tazi mashina. Taka che teoreticheski e wazmovno Jabata da e po-barza... Makar che ne mi se wiarwa mnogo, az do momenta barza Jaba ne sam wivdal.

Отговор
в отговор на lDispatch #10

да бе

а виртуалната машина нали е предварително компилирана, изобщо как си я мислиш тая работа с оптимизациите за специфичен процесор

Отговор
в отговор на gruhal #12

Re: да бе

Ами оптимизацията като цяло е трудоемък процес, именно затова напр. С++ е инзесъл тази чат *при компилиране* а не при изпълнение, именно защото оптимизацията представлява търсене на познати "патерни" в изходния и изпълнимия код, които могат да се заместят с по ефективни екживаленти.

Ето напр. всеки втори пише for цикъл така for( <inicialisation>; <condition>; i naprimer i++) - това е по-неефективно от for( <inicialisation>; <condition>; i naprimer ++i) - макар че прави същото... оптимизатора ще замести 1-вото с второто - по време на компилация това не е проблем - компилираме многократно по-рядко, и компилацията е многократно по-непретенциозна от към време от колкото самото изпълнение на кода който пишем.

JIT - както спомена е много хитра идея, но забележи - прочети в мсдн колко пъти се изпълнява това??? На всяко стартиране ли? Нищо подобно!!
Докато не ми е известно Java-та да си прави изпълним "имейдж" след 1-вия старт на машината. Иначе не с нищо повече мулти платформена от един обикновен ANSI C++ код, който можеш да си компилираш и пуснеш на всяка платформа :-))

Java e конкретно решение, с кокретна цел и ниша, тя обаче не включва добро бързодействие, а най-много задоволително такова. Което и отрежда неоспоримо място в страната на СофтДев-а. От тук нататък приказките са смешни. Това не е за да се плюе някой език или нещо от този род...

Ако мога да направя паралел - вижте напр. автомобилите. Да вземем един голф 2 и един Тир, и така - всеки от тях си има предназначение - ТИРа да пренася много големи стоки от точка А до т. Б, а голфа - да е удобна, сигурна и лесна за подръжка кола. Да говорим кое е по-добра кола е смешно - те се използват за различни неща - с различна цел са проектирани и посртоени.

И затова е смешно да излезе статия "ТИР по-лек от Голф 2 във всички тестове" или пък "Голф с повечв конски сили и носи повече товар - при всички тестове".
Е как ше стане??

Айде със сдраве

Отговор
в отговор на Todor #13

Re: Java faster tan C++ ?

хвърлих един бърз поглед - едно на ръка тия тестове са толкова безсмислени, колкото цикъл от 1 до 100 на всички езици...

а отделно - тоя дето ги е писал тестовете е идиот - примерно

X[strdup(buf)] = i;

Сигнатура!
Отговор
в отговор на Todor #14

Re: Java faster tan C++ ?

C++ кода не е връх на сладоледа. За Жаба може да нема значение точно как е написано, но C++ е език за разбирачи. Там детайлите са важни, точно затова не го долюбват много хора.
За матриците даже е чисто C. Да фане мойте матрици и да мери :-)


System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Отговор
в отговор на javar #15

Re: iad vi e a?

Да си виждал системни драйвери или вируси да се пишат на Java?

Отговор
в отговор на BjarneStroustrup® #16

Re: да бе

Да бе, естествено, отговора ми беше за безумния пост, че видите ли щом виртуалната машина била прекомпилирана, как щяла да оптимизира за даден процесор :)

Отговор
в отговор на gruhal #17

чукчата е писател, а не читател

смисъла на поста не беше, че виртуалната машина НЕ МОЖЕ ДА ГЕНЕРИРА оптимизиран код.
смисъла беше, че САМАТА ВИРТУАЛНА МАШИНА НЕ Е ОПТИМИЗИРАНА, а всъщност повечето работа се върши от нея +, че не всички vm генерират компилиран код.

Отговор
в отговор на ~!@$%^amp;*()_+ #18

Re: чукчата е писател, а не читател

Някой знае ли на какъв комп. език е писана Жабата. Не беше ли пак C/C++.
Ако е така за кво спориме?

Отговор
в отговор на Todor #19

Re: Java faster tan C++ ?

и понеже се изказвате компетентно за неща дето не познавате

още тестове...
[линк]

Отговор
в отговор на Todor #20

Re: Java faster tan C++ ?

Ако говорим за производителност на програмист (а не на програма) Java та е с векове напред... И мен ме кефи много C/C++, и Assembly ме кефи... такива яки неща мога да си правя с тях... въпроса е че шефа хич не го кефи за колко време ги правя и за това - Java, Python, Вижуъл Базик, ЦъШарп и т.н. Може да са грозни. Може да са бавни (ми кат ти е бавна програмата земи си по-добър компютър бе !:). Ама се пишат дяволски бързо и тръгват почти от сефте (ходи пиши Web Service на C++ без дотМиНет да те видим). Пък и после е бая лесно да добавяш кви ли не глезотийки към вече написаните неща.
Айде със здраве.

Отговор