Да, FPC (опять) "порвал" Java...

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Да, FPC (опять) "порвал" Java...

Сообщение grot » 24.01.2024 16:01:13

Тут понадобилось мне померить производительность Java в реальных задачах на разных OS / компах ...
Вспомнил про статью :

Александр Савиных
Тест производительности кода Java и FPC на Anrdoid'е
10.03.2014

http://freepascal.ru/article/freepascal/20140310080000/

... выкинул всю привязку к Anrdoid и получились универсальные тесты :

на Core 2 Duo T9300 , Win 64 :

java -version
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10)
OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode, sharing)

Код: Выделить всё
XML Document loaded; time spent: 0.172260886 seconds
Matrices in list: 205 items
Load matrix array from xml: time spent: 0.07759324000000001 secs
Items in array: 102
matrix products calculated; time spent: 0.0042400630000000005 secs
empty cycle; time spent: 0.07581977200000001 secs
Save matrix array to xml document: 0.04676881 seconds
Save xml document to file: 0.33610939900000003 seconds


Потом думаю, а что наш FPC ( 3.2.2 )
на той-же машине с теми-же тестовыми данными :

Код: Выделить всё
Now unpacking data...
Got data: 298448 bytes; time spend: 0.000319
Pharsed XML data; time spent: 0.023625
Matrices in list: 102 items
Load matrix list from xml: time spent: 0.006715
matrix products calculated; time spent: 0.001191 secs
Save matrix array to xml document: 0.008561 seconds
Save xml document to file: 0.007034 seconds
empty cycle; time spent: 0.221866 secs


Вот опять FPC обошел Java c неприлично большим отрывом ...
grot
новенький
 
Сообщения: 75
Зарегистрирован: 13.02.2010 16:33:03

Re: Да, FPC (опять) "порвал" Java...

Сообщение Sharfik » 24.01.2024 18:30:25

Это скомпилированная предварительно java?
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 766
Зарегистрирован: 20.07.2013 01:04:30

Re: Да, FPC (опять) "порвал" Java...

Сообщение grot » 24.01.2024 23:47:30

Да , запускалась из командной строки несколько раз , для разогрева кэша,
как
java -jar test.jar

FPC :
Консольная программа _ Прямо из Lazarus под Debugger и без оптимизаций ...
grot
новенький
 
Сообщения: 75
Зарегистрирован: 13.02.2010 16:33:03

Re: Да, FPC (опять) "порвал" Java...

Сообщение xchgeaxeax » 25.01.2024 00:04:18

Вы пытаетесь сравнивать скорость работы байткода и программы из аппаратных инструкций? Разумеется программа на FPC будет в разы быстрее т.к. ей не нужна трансляция перед исполнением. Байткод Java хоть и быстрый, но все же это отчасти скрипт, исполняющийся другой программой.
xchgeaxeax
новенький
 
Сообщения: 90
Зарегистрирован: 11.05.2023 03:51:40

Re: Да, FPC (опять) "порвал" Java...

Сообщение grot » 25.01.2024 00:23:31

Никогда не думал, что придется когда-то защищать Java ...

В вопросах компиляции они уже многих "обскакали" ( С, С++ и т.д. ):
JIT-компиляция
[url]
https://ru.wikipedia.org/wiki/JIT-%D0%B ... 0%B8%D1%8F
[/url]

Еще более интересные результаты можно получить при сравнении постоянно работающих сервисов,
а не консольных приложений, выполняемых 1 раз.
Замечено, что сервис на Java выходит на "проектную мощность" только после 3 вызовов,
при каждом из 3 вызовов производительность заметно растет - а потом стабилизируется !

Сервисы на Node.js - постоянный низкий результат ( хотя ходят упорные слухи, что там под капотом тоже JIT-компиляция, которая экспериментально не была обнаружена ! ).

Сервисы на FPC - постоянный высокий результат.
grot
новенький
 
Сообщения: 75
Зарегистрирован: 13.02.2010 16:33:03

Re: Да, FPC (опять) "порвал" Java...

Сообщение sts » 25.01.2024 14:30:47

grot писал(а):JIT-компиляция

но в вашем тесте нет ее, чтоб она включилась надо 10000 исполнений (чтото такое по умолчанию).
sts
постоялец
 
Сообщения: 415
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Да, FPC (опять) "порвал" Java...

Сообщение stikriz11 » 25.01.2024 17:58:44

grot писал(а):при каждом из 3 вызовов производительность заметно растет

Мой первый учитель по программированию на мою радостную весть, что программа заработала в пять раз быстрее сказал, мол, это же надо было так херово написать сначала...
stikriz11
постоялец
 
Сообщения: 114
Зарегистрирован: 04.09.2023 15:54:19

Re: Да, FPC (опять) "порвал" Java...

Сообщение Sharfik » 26.01.2024 16:39:42

stikriz11 писал(а):Мой первый учитель по программированию на мою радостную весть, что программа заработала в пять раз быстрее сказал, мол, это же надо было так херово написать сначала...

Я так графический редактор делал. Медленно обновлялся чертеж, пока не вспомнил что в генераторе ID сделал sleep(1).

grot писал(а):Да , запускалась из командной строки несколько раз , для разогрева кэша,
как
java -jar test.jar
FPC :
Консольная программа _ Прямо из Lazarus под Debugger и без оптимизаций ...

Не знаю что такое за разогрев кеша, я даже машину не прогреваю. А Java надо в начале в исполняемую программу компилировать, чтобы так сравнивать.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 766
Зарегистрирован: 20.07.2013 01:04:30


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru