Java faster tan C++ ?
21 отговора
2093 прегледа
Re: Java faster tan C++ ?
GCC е менте. Да ползва истински оптимизиращ компилатор и пак ще си говорим. Например Microsoft C++ 7.1 компилатора...
Re: Java faster tan C++ ?
Абе квото ще да е менте, тия джавари са откъснати от реалността.
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...

Логичнен въпрос когато човек види някакви тестове от резултати, е "Как си обяанявам това?"
Ти как си го обясняваш - със Сервер виртуалната машина която е по-бърза от клиент ВМ-то... да по-бърза е. Ама как е по-бърза от ц++ кода?
Предположения? Освен тези за енергии, бели братства, висш разум и т.н?
Значи нещата стоят така че дири да седнеш да напишеш компилатор за Жаба, без ВМ, просто да вади изпълним код за машината- пак няма да е по-бързо - най-малкото заради правилото "всичко в еиртуално" в жаба.
ето малко въпросче:
Кое е побързо?
а)
.....
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...
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..
Re: iad vi e a?
Ми разбира се, че .NET е по-бърз от Java-та, то въобще може ли да се води спор по въпроса??? 
Re: iad vi e a?
Може разбира се. 

Коя жава е по-бърза от кой .нет?

Не говорим за спецификации а за имплементации. Как можеш да кажеш
че дадена спецификация е по-бърза от друга?
Както виждаш човека сравнява две имплемнтации на виртуални машини.
Коя жава е по-бърза от кой .нет?
Не говорим за спецификации а за имплементации. Как можеш да кажеш
че дадена спецификация е по-бърза от друга?
Както виждаш човека сравнява две имплемнтации на виртуални машини.
Re: iad vi e a?
Ут дот нета по бързу нъ свитъ немъ пириъд ;-Р Квиту и дъ съ спицивикации пириъд И ут Ц пляс плас същу. А ут асенблер-а пък хич.
За тез дет ни знаиът пириъд = period = .
Ногу е топлу и мъ фана лигътъ...
Powered by telerik fuel. Sometimes by vodka.
За тез дет ни знаиът пириъд = period = .
Ногу е топлу и мъ фана лигътъ...
Powered by telerik fuel. Sometimes by vodka.
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.
да бе
а виртуалната машина нали е предварително компилирана, изобщо как си я мислиш тая работа с оптимизациите за специфичен процесор
Re: да бе
Ами оптимизацията като цяло е трудоемък процес, именно затова напр. С++ е инзесъл тази чат *при компилиране* а не при изпълнение, именно защото оптимизацията представлява търсене на познати "патерни" в изходния и изпълнимия код, които могат да се заместят с по ефективни екживаленти.
Ето напр. всеки втори пише for цикъл така for( <inicialisation>; <condition>; i naprimer i++) - това е по-неефективно от for( <inicialisation>; <condition>; i naprimer ++i) - макар че прави същото... оптимизатора ще замести 1-вото с второто - по време на компилация това не е проблем - компилираме многократно по-рядко, и компилацията е многократно по-непретенциозна от към време от колкото самото изпълнение на кода който пишем.
JIT - както спомена е много хитра идея, но забележи - прочети в мсдн колко пъти се изпълнява това??? На всяко стартиране ли? Нищо подобно!!
Докато не ми е известно Java-та да си прави изпълним "имейдж" след 1-вия старт на машината. Иначе не с нищо повече мулти платформена от един обикновен ANSI C++ код, който можеш да си компилираш и пуснеш на всяка платформа :-))
Java e конкретно решение, с кокретна цел и ниша, тя обаче не включва добро бързодействие, а най-много задоволително такова. Което и отрежда неоспоримо място в страната на СофтДев-а. От тук нататък приказките са смешни. Това не е за да се плюе някой език или нещо от този род...
Ако мога да направя паралел - вижте напр. автомобилите. Да вземем един голф 2 и един Тир, и така - всеки от тях си има предназначение - ТИРа да пренася много големи стоки от точка А до т. Б, а голфа - да е удобна, сигурна и лесна за подръжка кола. Да говорим кое е по-добра кола е смешно - те се използват за различни неща - с различна цел са проектирани и посртоени.
И затова е смешно да излезе статия "ТИР по-лек от Голф 2 във всички тестове" или пък "Голф с повечв конски сили и носи повече товар - при всички тестове".
Е как ше стане??
Айде със сдраве
Ето напр. всеки втори пише for цикъл така for( <inicialisation>; <condition>; i naprimer i++) - това е по-неефективно от for( <inicialisation>; <condition>; i naprimer ++i) - макар че прави същото... оптимизатора ще замести 1-вото с второто - по време на компилация това не е проблем - компилираме многократно по-рядко, и компилацията е многократно по-непретенциозна от към време от колкото самото изпълнение на кода който пишем.
JIT - както спомена е много хитра идея, но забележи - прочети в мсдн колко пъти се изпълнява това??? На всяко стартиране ли? Нищо подобно!!
Докато не ми е известно Java-та да си прави изпълним "имейдж" след 1-вия старт на машината. Иначе не с нищо повече мулти платформена от един обикновен ANSI C++ код, който можеш да си компилираш и пуснеш на всяка платформа :-))
Java e конкретно решение, с кокретна цел и ниша, тя обаче не включва добро бързодействие, а най-много задоволително такова. Което и отрежда неоспоримо място в страната на СофтДев-а. От тук нататък приказките са смешни. Това не е за да се плюе някой език или нещо от този род...
Ако мога да направя паралел - вижте напр. автомобилите. Да вземем един голф 2 и един Тир, и така - всеки от тях си има предназначение - ТИРа да пренася много големи стоки от точка А до т. Б, а голфа - да е удобна, сигурна и лесна за подръжка кола. Да говорим кое е по-добра кола е смешно - те се използват за различни неща - с различна цел са проектирани и посртоени.
И затова е смешно да излезе статия "ТИР по-лек от Голф 2 във всички тестове" или пък "Голф с повечв конски сили и носи повече товар - при всички тестове".
Е как ше стане??
Айде със сдраве
Re: Java faster tan C++ ?
хвърлих един бърз поглед - едно на ръка тия тестове са толкова безсмислени, колкото цикъл от 1 до 100 на всички езици...
а отделно - тоя дето ги е писал тестовете е идиот - примерно
X[strdup(buf)] = i;
Сигнатура!
а отделно - тоя дето ги е писал тестовете е идиот - примерно
X[strdup(buf)] = i;
Сигнатура!
Re: Java faster tan C++ ?
C++ кода не е връх на сладоледа. За Жаба може да нема значение точно как е написано, но C++ е език за разбирачи. Там детайлите са важни, точно затова не го долюбват много хора.
За матриците даже е чисто C. Да фане мойте матрици и да мери :-)
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
За матриците даже е чисто C. Да фане мойте матрици и да мери :-)
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: да бе
Да бе, естествено, отговора ми беше за безумния пост, че видите ли щом виртуалната машина била прекомпилирана, как щяла да оптимизира за даден процесор :)
чукчата е писател, а не читател
смисъла на поста не беше, че виртуалната машина НЕ МОЖЕ ДА ГЕНЕРИРА оптимизиран код.
смисъла беше, че САМАТА ВИРТУАЛНА МАШИНА НЕ Е ОПТИМИЗИРАНА, а всъщност повечето работа се върши от нея +, че не всички vm генерират компилиран код.
смисъла беше, че САМАТА ВИРТУАЛНА МАШИНА НЕ Е ОПТИМИЗИРАНА, а всъщност повечето работа се върши от нея +, че не всички vm генерират компилиран код.
Re: чукчата е писател, а не читател
Някой знае ли на какъв комп. език е писана Жабата. Не беше ли пак C/C++.
Ако е така за кво спориме?
Ако е така за кво спориме?
Re: Java faster tan C++ ?
и понеже се изказвате компетентно за неща дето не познавате
още тестове...
[линк]
още тестове...
[линк]
Re: Java faster tan C++ ?
Ако говорим за производителност на програмист (а не на програма) Java та е с векове напред... И мен ме кефи много C/C++, и Assembly ме кефи... такива яки неща мога да си правя с тях... въпроса е че шефа хич не го кефи за колко време ги правя и за това - Java, Python, Вижуъл Базик, ЦъШарп и т.н. Може да са грозни. Може да са бавни (ми кат ти е бавна програмата земи си по-добър компютър бе !:). Ама се пишат дяволски бързо и тръгват почти от сефте (ходи пиши Web Service на C++ без дотМиНет да те видим). Пък и после е бая лесно да добавяш кви ли не глезотийки към вече написаните неща.
Айде със здраве.
Айде със здраве.