Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Вниз

Java vs Delphi   Найти похожие ветки 

 
StarCon   (2004-06-30 09:16) [40]

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


 
StarCon   (2004-06-30 09:18) [41]

мне вот указали на JRokit - быстрейшую жаба-машину
на некоторых операциях она бьет дельфи более чем в 20 раз
магия какая-то :)


 
cyborg ©   (2004-06-30 09:29) [42]

Какая это магия?
Вот это убери Edit1.Text:=IntToStr((GetTickCount()-t)); и в яве тоже, тестируй без вывода на экран.


 
cyborg ©   (2004-06-30 09:33) [43]

И к тому же, всё вот это дело v:=v1*v2+v3/v4-v; по идее посчитается компилятором из констант и больше не будет считаться. Сто миллионов пустой цикл какой-то получается.

А насчёт [42] cyborg ©   (30.06.04 09:29) я не то смотрел :)


 
cyborg ©   (2004-06-30 09:34) [44]

Да блин, вообще касой я стал :), всё правильно там.


 
SPeller ©   (2004-06-30 09:35) [45]


D: - Вощем Java рулит. Сечас особенно идет тенденция к переводу  софта на Java.
- Java не работает адекватно, е-мое. Пусть арифметические операции работают примелимо, допустим. Но кроме этого есть еще много других аспектов.
- Java - это не совсем интерпретатор, скорее - "компилятор at run-time".
- голоса из прошлого?... дарагой, Java рулила лет 5 - 7 назад.
D: - Sun хочет сделать Java мэйнстримом для корпоративного ПО.
- Java 3D – это часть программного кода, известного как API, ранее используемая NASA в системе контроля миссии на Марс.
D: - Java рулит. Сейчас есть тенденция к переходу программирования  на Java.

Дима как обычно в своем репертуаре :-))


 
StarCon   (2004-06-30 10:47) [46]

ну хорошо, вот оптимизированный код:
var
 t,y:cardinal;
 i:integer;
 v,v1,v2,v3,v4,v5,v6,a:double;
begin
 v:=2.674374;
 v1:=0.6748345;
 v2:=9.43924347;
 v3:=67.26357244;
 v4:=4.82736832;
 v5:=0.78473924839;
 v6:=2.94739473982;

 t:=GetTickCount();
 a := v1*v2+v3/v4;
 for i:=0 to 100000000 do
 begin
   v:=a-v;
 end;
 y := GetTickCount()-t;
 Edit1.Text:=IntToStr(y);
end;
на моем компьюторе выполняется - 1578
почему такой же код на жабе выполняется - 1438?
настройки компилятора выставил по рекомендациям (кстати совсем никакого эффекта не дали).


 
wicked ©   (2004-06-30 11:06) [47]

ну блин, человек дает... меряет пиписки двум продуктам и силится кому-то что-то доказать... спрошу прямо....
> StarCon [46]
дарагой, тебе заплатили?... :)
нравится ява - пользуй яву...
не нравится - пользуй что-то другое...
по любому никто тут сразу не кинется писать на яве...


 
wicked ©   (2004-06-30 11:07) [48]

в догонку - тест очень синтетический и с реальной жизнью имеет очень мало общего...


 
Real ©   (2004-06-30 11:24) [49]

интерпретируемый язык - медленнее по определению. собака зарыта в тесте (где именно, не берусь сказать). упростите до максимума тест.


 
Dmitriy O. ©   (2004-06-30 11:29) [50]

А мож дело в константах. Java прочитала один раз и больше пропускает их А Delphi читает каждый цикл по новой.
Мож попробывать без констант в каждом цикле изменяя значения переменных.


 
cyborg ©   (2004-06-30 11:29) [51]

Вот на фрипаскале написал, только с целыми числами:


program test;
Uses windows;
var
t,y:cardinal;
i:integer;
v,v1,v2,v3,v4,v5,v6,a:Longint;
begin
v:=45647;
v1:=-1235;
v2:=4657252;
v3:=34722;
v4:=-2372236;
v5:=234111230;
v6:=2342;

t:=GetTickCount();
a := v1*v2+v3-v4;
for i:=0 to 100000000 do
begin
  v:=a-v;
end;
y := GetTickCount()-t;
WriteLN("V:=",V," v:=a-v | Time: ", y);

v:=45647;

t:=GetTickCount();
for i:=0 to 100000000 do
begin
  v:=(v1*v2+v3-v4)-v;
end;
y := GetTickCount()-t;
WriteLN("V:=",V," v:=(v1*v2+v3-v4)-v | Time: ",y);

v:=45647;

t:=GetTickCount();
for i:=0 to 100000000 do
begin
  asm
  MOV EDX,A;
  SUB EDX,V;
  MOV V,EDX;
  end;
end;
y := GetTickCount()-t;
WriteLN("V:=",V," ASM v:=a-v | Time: ",y);

WriteLN("Press ENTER to exit:");
ReadLN;
end.


Результат:


V:=-1454377613 v:=a-v | Time: 851
V:=-1454377613 v:=(v1*v2+v3-v4)-v | Time: 1282
V:=-1454377613 ASM v:=a-v | Time: 711
Press ENTER to exit:


На Duron 800 MHz


 
Danilka ©   (2004-06-30 11:33) [52]

:))
нигде тут собака и не рылась. что значит "интерпретируемый"? по-вашему интерпритатор берет одну команду, например, v:=a-v, парсит ее, исполняет, затем читает следующую команду?
дык, тогда эту яву вообще невозможно было-бы запускать. :))
там все намного сложнее, в данном случае цикл отрабатывает уже откомпиленый и оптимизированный.


 
StarCon   (2004-06-30 11:52) [53]

всем спасибо! вопрос снят


 
azerty   (2004-06-30 20:51) [54]

as part of ... see article "Кто сегодня самый шустрый?" on http://rsdn.ru


 
iZEN ©   (2004-06-30 20:54) [55]

to azerty   (30.06.04 20:51) [54].
Безбожно устарело, там ещё Java2 1.3 сравнивается.



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.026 c
1-1088939406
ida
2004-07-04 15:10
2004.07.18
Как заставить работать клавиатурные сокращения?


14-1088652328
Ozone
2004-07-01 07:25
2004.07.18
Linux - безопасность


1-1088697262
killer
2004-07-01 19:54
2004.07.18
Transparent в Notebook


1-1089027605
GALIM
2004-07-05 15:40
2004.07.18
Непонятный формат


1-1088794348
AndreyZ
2004-07-02 22:52
2004.07.18
Tedit, TMemo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский