Форум: "Потрепаться";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизJava vs Delphi Найти похожие ветки
← →
StarCon (2004-06-29 10:38) [0]Нами были проведены тесты быстродействия языков Delphi и Java на математических операциях *,/,+,- плавающей арифметики. Для делфи был использован код:
var
t:cardinal;
i:integer;
v,v1,v2,v3,v4,v5,v6: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();
for i:=0 to 100000000 do
begin
v:=v1*v2+v3/v4-v;
end;
Edit1.Text:=IntToStr((GetTickCount()-t));
Для Java:
public final int max_count = 100000000;
public Java_Test() {
test();
}
public void test() {
double v = 2.674374;
double v1 = 0.6748345;
double v2 = 9.43924347;
double v3 = 67.26357244;
double v4 = 4.82736832;
double v5 = 0.78473924839;
double v6 = 2.94739473982;
long bt = System.currentTimeMillis();
for (int i = 0; i < max_count; i++) {
v = v1 * v2 + v3 / v4 - v;
}
long et = System.currentTimeMillis();
long time = et - bt;
System.out.println("Time: " + Long.toString(time) + ";");
}
Испытания проводились на одной и той же машине.
Были получены следующие результаты в милисекундах в серии из пяти испытаний:
Delphi: 2584.2 мс.
Java: 2353.2 мс.
Т.е. java оказалась быстрее delphi на 231 мс. или на 8.94%!
Кто теперь скажет что java медленнее delphi?
← →
Иванов Александр (2004-06-29 11:07) [1]Эксперимент не совсем "чистый" для Java вы сделали консольное приложение, а для Delphi - нет. Так что прибавьте время на перерисовку. Или повторите эксперимент.
← →
StarCon (2004-06-29 11:13) [2]сделал консольное:
var
t:integer;
i:integer;
v,v1,v2,v3,v4,v5,v6:double;
begin
{$APPTYPE CONSOLE}
v:=2.674374;
v1:=0.6748345;
v2:=9.43924347;
v3:=67.26357244;
v4:=4.82736832;
v5:=0.78473924839;
v6:=2.94739473982;
t:=GetTickCount();
for i:=0 to 100000000 do
begin
v:=v1*v2+v3/v4-v;
end;
WriteLn(IntToStr((GetTickCount()-t)));
end.
как ни странно, но время стало еще больше на 16 мс.
есть еще какие предположения почему так происходит?
← →
TUser © (2004-06-29 11:26) [3]Жаву не знаю, но первый вопрос - а тип double там точно соответствует double в delphi. Что касается скорости - верю в то, что интерпретируемое приложение (все-таки ведь интерпретируемое, как его ни называй) не может быть быстрее скомпилированного.
← →
wicked © (2004-06-29 11:29) [4]хы-хы... код не эквивалентный - на паскале он будет исполняться на одну итерацию больше... :)
хотя, судя по такой оплошности, вызывает сомнения сам тест - например, совсем неизвестно, с какими настройками скомпилированы оба приложения...
← →
Sandman25 © (2004-06-29 11:29) [5]uses покажите
← →
Иванов Александр (2004-06-29 11:38) [6]Примитивные типы в Java - тоже платформенно независимые, хотя это не причина работать быстрее :).
← →
StarCon (2004-06-29 11:41) [7]uses SysUtils, Windows, Unit1 in "Unit1.pas" {Form1};
← →
StarCon (2004-06-29 11:42) [8]wicked - может подскажешь, какие настройки для дельфи поставить, чтобы было быстрее?
← →
pasha_golub © (2004-06-29 11:43) [9]Это не тест, а черт знает что. :-)
← →
Anatoly Podgoretsky © (2004-06-29 11:44) [10]Отключить все проверки и FPU коррекцию ошибки.
← →
Dmitriy O. © (2004-06-29 11:45) [11]Тут тоже ктот не давно тесте проводил по скорости в моей ветке
"Где найти компилятор Java и как он называется" Там Java со строками тоже быстрее работала. И были этому какието обьяснения.
Вощем Java рулит. Сечас особенно идет тенденция к переводу софта на Java.
← →
pasha_golub © (2004-06-29 11:48) [12]Еще раз обращаю внимание на то, о чем говорил wicked © (29.06.04 11:29) [4]
for (int i = 0; i < max_count; i++)
// тут имеем 100000000 итераций
for i:=0 to 100000000 do
// тут имеем 100000000 итераций + одну итерацию. Это что не видно?
← →
Иванов Александр (2004-06-29 11:50) [13]
> pasha_golub ©
Одна итерация из 100000000 повлияла на результат?
← →
Anatoly Podgoretsky © (2004-06-29 11:51) [14]Нет, но как тогда можно говорить про качество тестирование, к тому никакого понятия об настройках компилятора.
← →
pasha_golub © (2004-06-29 11:52) [15]Иванов Александр (29.06.04 11:50) [13]
Это не важно! Если автор теста не заметил такую вещь, откуда я могу знать, что еще не учтено? ;-)
← →
Dmitriy O. © (2004-06-29 11:52) [16]
> pasha_golub © (29.06.04 11:48) [12]
И что на одну и итерацию тратится 300 мск ?
Все равно даже если это так Java работает по крайне мере адекватно Delphi а не тормозно как многие утверждали.
Вот даже марсаходы работают на Java.
← →
wicked © (2004-06-29 11:54) [17]у меня получилось
{$A+,B-,C-,E-,F-,H+,I-,J-,K-,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Z1}
← →
wicked © (2004-06-29 11:56) [18]настройки компилятора в смысле...
← →
pasha_golub © (2004-06-29 11:56) [19]Dmitriy O. © (29.06.04 11:52) [16]
Фух, Дима, ну ты и даешь. Могу пожелать удачи марсоходам. Дай мне только ссылку, где это четко сказано.
Java не работает адекватно, е-мое. Пусть арифметические операции работают примелимо, допустим. Но кроме этого есть еще много других аспектов.
← →
Иванов Александр (2004-06-29 12:00) [20]Я очень не доверяю сборщикам мусора. В данном примере его работа минимальна.
← →
PVOzerski © (2004-06-29 12:02) [21]Рискну кое-что сказать и я, хоть и ориентируюсь не только на свой опыт, а с Java сам не работал.
1) Java - это не совсем интерпретатор, скорее - "компилятор at run-time".
2) Вот есть у меня такое наблюдение. Запускаешь тестовую прогу 1-й раз, получаешь значение быстродействия. Запускаешь 2-й раз - получается, что считает быстрее. Я не знаю, как там ОС делит процессор между задачами, что кэширует - голая эмпирика. Но факт.
← →
Dmitriy O. © (2004-06-29 12:05) [22]
> Дай мне только ссылку, где это четко сказано.
Sun хочет сделать Java мэйнстримом для корпоративного ПО 28.06.04 13:40 CNews
... известного как API, ранее используемая NASA в системе контроля миссии на Марс.
Сюжет полностью (7) >>
http://www.cnews.ru/newsline/index.shtml?2004/06/28/160621
← →
wicked © (2004-06-29 12:07) [23]
> Вощем Java рулит. Сечас особенно идет тенденция к переводу
> софта на Java.
голоса из прошлого?... дарагой, Java рулила лет 5 - 7 назад и то в умах некоторых нестабильных личностей...
сейчас Java заняла свою нишу, и то её пытается вытеснить (и весьма успешно) microsoft со своим .net...
← →
pasha_golub © (2004-06-29 12:12) [24]Ну, что украинофоб, Дима?
Цитата:
"Напомним, что Project Looking Glass – это ПО, предназначенное для создания трёхмерной среды для десктопов с прозрачными окнами, вращением объектов и другими характеристиками. Java 3D – это часть программного кода, известного как API, ранее используемая NASA в системе контроля миссии на Марс."
ТО есть в ЦУПе для визуализации эту Жаву использовали, а не для марсоходов. Это, раз. Во-вторых, по всей статье разбросано "будет", "собирается" и т.п.
← →
wicked © (2004-06-29 12:12) [25]цитата из статьи по ссылке http://www.cnews.ru/newsline/index.shtml?2004/06/28/160621 :
Напомним, что Project Looking Glass – это ПО, предназначенное для создания трёхмерной среды для десктопов с прозрачными окнами, вращением объектов и другими характеристиками. Java 3D – это часть программного кода, известного как API, ранее используемая NASA в системе контроля миссии на Марс.
ну и где здесь про то, что Java на марсоходах стоит?... вот о том, что на НАСовских десктопах - есть, рисует ландшафты она там...
← →
wicked © (2004-06-29 12:13) [26][24]
[25]
:))
← →
Dmitriy O. © (2004-06-29 12:18) [27]Блин о том что проги на Java управляют марсаходами твердят уже пол года а вы еще о них не слышали. Вот ссыл ки в Яндех
по ключевам словаи "марс&java"
http://www.yandex.ru/yandsearch?text=%EC%E0%F0%F1%26java&stype=www&nl=0
Цитаты
pdf) Программирование на Java
... США, занимающаяся исследованием космоса) с помощью Java-апплетов управляют роботом, изучающим поверхность Марса ("Java помогает делать историю! ...
www.javagu.ru/files/course/Java_COURSE_Lec01.pdf (279 КБ) 12.05.2003 — совпадение фразы
Сохраненная копия · Похожие документы · Еще с сайта (3)
Свет в Internet
И, опять же при помощи Java, управляется марсоход Spirit, который только что искал на поверхности Марса следы воды и жизни.
www.lightnet.obninsk.ru/news/show_news.php?news_id=720 (9 КБ) — строгое соответствие
Найденные слова · Похожие документы · Рубрика: Интернет
← →
pasha_golub © (2004-06-29 12:21) [28]Dmitriy O. © (29.06.04 12:18) [27]
Да е-мое, ну скоко можно, ты различаешь апплет и сервлет? Мля, ну сил моих нету. Управляли апплетом - это значит в ЦУПе на десктопе, а вот если бы управляли сервлетом - это значит на марсоходе стоит!
← →
iZEN © (2004-06-29 12:57) [29]У меня тоже кое-что есть:
"Тесты производительности платформ"
http://izen5.by.ru/projects/projects.html#benchmarktest
Вычисления с плавающей точкой и Комбинаторика на Java и Delphi - сравнивайте, думайте.
← →
StarCon (2004-06-29 13:02) [30]iZEN © - спасибо!
← →
Danilka © (2004-06-29 13:04) [31]А заодно можно сравнить, например, vcl и swing и тоже подумать.
:))
← →
iZEN © (2004-06-29 13:13) [32]to Danilka © (29.06.04 13:04) [31].
...в философском смысле: почему тупая и быстрая VCL многим кажется лучше, чем красивая и медленная Swing.
← →
Ломброзо © (2004-06-29 13:47) [33]По сравнению с MFC VCL гармонична и стройна.
← →
Паниковский © (2004-06-29 14:45) [34]Ломброзо
очень она гармонична чем тебе MFC не понравился?
← →
Mystic © (2004-06-29 15:23) [35]Нами были проведены тесты быстродействия языков Delphi и Java на математических операциях *,/,+,-
Кем это --- нами?
Кроме того, скорее всего это тест не на быстродействие, а на качество оптимизатора. Наиболее навороченый компилятор (скажем, Intel C++) сумел бы заменить цикл
for i:=0 to 100000000 do
begin
v:=v1*v2+v3/v4-v;
end;
на
a := v1*v2+v3/v4;
for i:=0 to 100000000 do
v := a - v;
или даже на
v := PRE_CALC_RESULT; // = v или a-v
Основные проблемы Java, судя по этим тестам, это работа с хипом:
http://www.rsdn.ru/article/devtools/perftest.xml
← →
NickD (2004-06-29 15:45) [36]Так до сих по никто не успокоился?
Delphi это ведь не только "голый" Object Pascal и не только "голый"
VCL, который является надстройкой над системными АПИ. Delphi - в первую очередь это не Run-time компилятор, как вы изволили заметить. И если что - то быстре работает на Java написанное "Вот так", то на Delphi это будет работать быстрее написанное "Вот эдак".
Да, язык Java - без сомнения достаточно удобный и современный язык, который способен решать достаточно большое количество задач, к которым в первую очередь можно отнести кросс-платформенность , использование скриптов и скриптовых движков (как в браузерах), и т.д.
Но давайте, если вы сравниваете конкретно Delphi, то сравнивайте и конкретную Java (с учетом конкретного JIT или JVM или JS или что там еще существует). С учетом того, что и то и то средство имеет несколько путей решения одной и той же задачи.
JIT-компитлятор не может быть быстрее native-программы по определению (т.к. сам явялеется native-программой) (без учета исполнения этих native-программ). Думаю, что этот абзац многим не понравится. Что ж учтите все, тогда и можно будет спорить.
Согласен с (29.06.04 11:51) [14] и к тому же еще сущетствуют АСМ процедуры, что так же является одним из средств Delphi
← →
Nick Denry © (2004-06-29 15:47) [37]NickD всмысле Nick Denry
← →
StarCon (2004-06-30 09:02) [38]jdk новый, версия 1.5.0 beta
вот что интересно - оптимизировал я код, как указал Mystic в дельфи, время выполнения значительно уменьшилось
НО! оптимизировав так же жаба-код опять получаю что жаба значительно быстрее, несмотря на то что работает через виртуальную машину. как так получается?
← →
Dmitriy O. © (2004-06-30 09:10) [39]
> что жаба значительно быстрее
Java рулит. Сейчас есть тенденция к переходу программирования на Java.
← →
StarCon (2004-06-30 09:16) [40]вопрос не в том что рулит а что нет
вопрос - почему жаба через виртуальную машину быстрее чем дельфи напрямую... процессор все равно выполняет код, почему код виртуальной машины + код программы быстрее кода программы на дельфи
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.047 c