powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
45 сообщений из 45, показаны все 2 страниц
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39615920
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток,

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

Чисто визуально складывается впечатление что FPC (напр. 3.0.4) несколько проигрывает последним компиляторам от идеры но хотелось бы поподробнее посмотреть на какой разрядности, на каких операциях, в идеале почему и как с этим бороться если это возможно.

спасибо.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39615967
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoЧисто визуально складывается впечатление что FPC (напр. 3.0.4) несколько проигрывает последним компиляторам от идеры но хотелось бы поподробнее посмотреть на какой разрядности, на каких операциях, в идеале почему и как с этим бороться если это возможно.
Если речь о "чисто визуально", то дело, скорее всего, не в компиляторе, а в RTL, а конкретно в менеджере памяти. У классических дельфей с 2006 версии по дефолту используется FastMM, у FPC ничего подобного нет.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39615971
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имхо, вопрос из серии "что быстрее - java или c#".
Что значит "визуально" - гуй отзывчивей? Так их сравнивать вообще нельзя.
А в плане молотилок - в RTL х32 многие функции сразу на асме, а вот под остальные платформы компилится из Паскаля. Насчет fpc не в курсе.
Что мешает сделать бенчи на интересующие операции да сравнить? Или просто машинный код посмотреть.
Вообще насколько я знаю, родной компилятор Эмбы довольно тупой - никаких тебе особо хитрых оптимизаций или новых инструкций.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39615979
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2Имхо, вопрос из серии "что быстрее - java или c#".
....
Что мешает сделать бенчи на интересующие операции да сравнить? Или просто машинный код посмотреть.
.......


можно, но зачем повторять работу которую уже наверняка кто то сделал.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39615983
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FPC в целом несколько медленней. Но это не правило.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616134
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимизатор Delphi не модифицировался с момента создания. С момента D5 уж точно.
С x64 появилось больше регистров и программы стали пошустрее
Не помню с какой версии, может быть с 2006, в сборку вошёл FastMM

В FPC в свою очередь есть пара клевых оптимизаций. Типа целочисленное деление через умножение, говорят, с FPU работает лучше. Но по регистрам рассовывает плохо.

У меня есть проект CrystalPathFinding, где реаллоки памяти сведены к нулю, FPU практически нет, чистый процессор. Так вот FPC отрабатывает в 2 раза медленнее. Что повергло меня в шок.
У меня всё.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616139
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Оптимизация на уровне процессора не такая простая и однозначная штука, как кажется. Реальное ускорение, как правило, даёт не распихивание по регистрам, а SIMD или многопоточная обработка. X64 по скорости существенно не отличается от X32, несмотря на большее число регистров.

авторОптимизатор Delphi не модифицировался с момента создания. С момента D5 уж точно.

Я не скажу насчет оптимизатора. Но многие библиотеки существенно улучшены. Работы со строками, математика, FastMM включен в состав. Так что говорить, что общая производительность не выросла неверно. Выросла и существенно. Многое из FastCode добавилось непосредственно в Delphi:

https://en.wikipedia.org/wiki/FastCode
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616142
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUС x64 появилось больше регистров и программы стали пошустрее
Медленнее. Как минимум case в x64 не оптимизируется, да и размеры типов данных сказываются на общей производительности.

SOFT FOR YOUВ FPC в свою очередь есть пара клевых оптимизаций.
В FPC дофига клёвых оптимизаций, есть даже векторизация. Вот если бы он ещё и компилитровал всё, вообще цены бы небыло.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616147
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако х86 программа на дельфи втупую перекомпилированная на х64 работает как минимум процентов на 10 быстрей.

Многократно мною проверено на многих живых проектах.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616251
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам код FPC x64 -O3:

Код: sql
1.
2.
3.
4.
ApnStrings.pas:191                        X := X xor CharMask;
0000000100027BD8 4d89de                   mov    %r11,%r14
0000000100027BDB 4d31ce                   xor    %r9,%r14
0000000100027BDE 4d89f1                   mov    %r14,%r9
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616328
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUВот вам код FPC x64 -O3:И что это должно кому-то доказать или опровергнуть? У тебя, как обычно, своеобразная тестовая выборка
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616352
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUВот вам код FPC x64 -O3:а как должно быть?
в http://agner.org/optimize/instruction_tables.pdf говорят что что эти 3 инструкции будут выполнены за 0.33 такта каждая. Вроде не плохо, не?
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616357
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

Ты хочешь, чтобы я тебе весь листинг дизассемблерного дерьма привёл? Или что?
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616358
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kep-ko,

Эти операции будут выполняться 3 такта, т.к. команды зависимые
А должна быть 1 команда 0.33 такта

Но это не самое отвратительное. Самое отвратительное - что юзается огромное количество лишних регистров, а нужные переменные хранятся на стеке.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616360
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU,

- не знаю, надо затестить, но лень
- там щас активно переименование регистров вроде используется
- ну и асмовые объектники слинковать можно, если уж О4 не доставляет )
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616421
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кому там не нравился case в x64
Вот вам case на FreePascal.
P.S. сцуко, даже обнуление переменной через mov делается

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function Test(X: NativeUInt): NativeUInt;
begin
  case X of
    0: Result := 100500;
    1: Result := 100501;
    2: Result := 100502;
    3: Result := 100503;
    4: Result := 100504;
    5: Result := 100505;
    6: Result := 100506;
  else
    Result := 0;
  end;
end;   



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
uContextManager.pas:164                   case X of
00000001000270F0 4885c9                   test   rcx,rcx
00000001000270F3 7426                     je     0x10002711b <TEST+43>
00000001000270F5 4883e901                 sub    rcx,0x1
00000001000270F9 742c                     je     0x100027127 <TEST+55>
00000001000270FB 4883e901                 sub    rcx,0x1
00000001000270FF 7432                     je     0x100027133 <TEST+67>
0000000100027101 4883e901                 sub    rcx,0x1
0000000100027105 7438                     je     0x10002713f <TEST+79>
0000000100027107 4883e901                 sub    rcx,0x1
000000010002710B 743e                     je     0x10002714b <TEST+91>
000000010002710D 4883e901                 sub    rcx,0x1
0000000100027111 7444                     je     0x100027157 <TEST+103>
0000000100027113 4883e901                 sub    rcx,0x1
0000000100027117 744a                     je     0x100027163 <TEST+115>
0000000100027119 eb54                     jmp    0x10002716f <TEST+127>
uContextManager.pas:165                   0: Result := 100500;
000000010002711B 48b89488010000000000     movabs rax,0x18894
0000000100027125 eb52                     jmp    0x100027179 <TEST+137>
uContextManager.pas:166                   1: Result := 100501;
0000000100027127 48b89588010000000000     movabs rax,0x18895
0000000100027131 eb46                     jmp    0x100027179 <TEST+137>
uContextManager.pas:167                   2: Result := 100502;
0000000100027133 48b89688010000000000     movabs rax,0x18896
000000010002713D eb3a                     jmp    0x100027179 <TEST+137>
uContextManager.pas:168                   3: Result := 100503;
000000010002713F 48b89788010000000000     movabs rax,0x18897
0000000100027149 eb2e                     jmp    0x100027179 <TEST+137>
uContextManager.pas:169                   4: Result := 100504;
000000010002714B 48b89888010000000000     movabs rax,0x18898
0000000100027155 eb22                     jmp    0x100027179 <TEST+137>
uContextManager.pas:170                   5: Result := 100505;
0000000100027157 48b89988010000000000     movabs rax,0x18899
0000000100027161 eb16                     jmp    0x100027179 <TEST+137>
uContextManager.pas:171                   6: Result := 100506;
0000000100027163 48b89a88010000000000     movabs rax,0x1889a
000000010002716D eb0a                     jmp    0x100027179 <TEST+137>
uContextManager.pas:173                   Result := 0;
000000010002716F 48b80000000000000000     movabs rax,0x0
uContextManager.pas:175                   end;
0000000100027179 c3000000000000           ret  
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616439
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUВот вам case на FreePascal.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616443
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Вся печаль в том, что ты занимаешься ловлей блох. В реальном приложении - ну да - 10% прирост получишь. Другими словами - ни о чём. Хотя бы порядок, хотя бы двоичный (что, собственно, с simd/мультипоточкой и получается). А лучше два-три порядка и десятичных. Но это - либо алгоритмическое, либо расчет видюхами. Нравится за блохами гоняться - флаг, как говорится, в руки и барабан на шею.

авторсцуко, даже обнуление переменной через mov делается

Сырцы доступны, вредной Идеры нет, обижаться не на кого.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616478
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Код в студию
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616481
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Зависит от того, каков характер реального приложения. По каким ещё критериям ты хотел сравнивать FPC и Delphi?
В моём реальном приложении, как я уже говорил, проводились расчёты на процессоре, и FPC сработал в 2 раза медленнее. Как раз из-за "блох", о которых ты говоришь.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616489
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Какой код тебе ещё нужен? Два цикла с вызовом твоей функции?
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616491
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Ну откуда я знаю, чего ты там в какой последовательности вызываешь
Выкладывай, посмотрим
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616498
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUВ моём реальном приложении, как я уже говорил, проводились расчёты на процессоре, и FPC сработал в 2 раза медленнее.
Тут недавно гоняли чисто вычислительный рейтрейсер, ни каких двукратных отставаний небыло и в помине.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616500
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
program Project1;

{$APPTYPE CONSOLE}

uses
  Windows;

function Test(X: NativeUInt): NativeUInt;
begin
  case X of
    0: Result := 100500;
    1: Result := 100501;
    2: Result := 100502;
    3: Result := 100503;
    4: Result := 100504;
    5: Result := 100505;
    6: Result := 100506;
  else
    Result := 0;
  end;
end;

const
 values : array [0 .. 7] Of NativeUInt = (7, 0, 6, 1, 5, 2, 4, 3);

var

 sw    : Longword;
 index : Integer;
 c     : Integer;
 t     : NativeUInt;

begin
  sw := getTickCount();

  for index := 1 to 100000000 do
   for c := 0 to 7 do
    t := test(values[c]); // можно без values, на результат не влияет

  WriteLn(getTickCount() - sw);
  readln;
end.

...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616501
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем так сложно?!
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616541
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня получилось вот так
Таки в FPC для длинных case-ов тоже маппинг.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

{$ifdef FPC}
  {$MODE DELPHIUNICODE}
  {$ASMMODE INTEL}
{$else}
  {$WARN UNSAFE_CODE OFF}
  {$WARN UNSAFE_TYPE OFF}
  {$WARN UNSAFE_CAST OFF}
{$endif}
{$U-}{$V+}{$B-}{$X+}{$T+}{$P+}{$H+}{$J-}{$Z1}{$A4}
{$O+}{$R-}{$I-}{$Q-}{$W-}

uses
  Windows, SysUtils;

function Test(X: NativeUInt): NativeUInt;
begin
  case X of
    0: Result := 100500;
    1: Result := 100501;
    2: Result := 100502;
    3: Result := 100503;
    4: Result := 100504;
    5: Result := 100505;
    6: Result := 100506;
    7: Result := 100507;
    8: Result := 100508;
    9: Result := 100509;
   10: Result := 100510;
   11: Result := 100511;
   12: Result := 100512;
   13: Result := 100513;
   14: Result := 100514;
   15: Result := 100515;
  else
    Result := 0;
  end;
end;

const
  ITERATION_COUNT = 100000000;
  VALUES: array [0..16] Of NativeUInt = (8, 4, 2, 1, 3, 0, 7, 5, 6, 12, 10, 11, 9, 15, 13, 16, 14);

var
  i, j: Integer;
  T: Cardinal;

begin
  try
    Writeln({$ifdef FPC}'FreePascal'{$else}'Delphi'{$endif} + ' ' +
      {$if SizeOf(Pointer) = 4}'x86'{$else}'x64'{$ifend});

    Write('Duplicates... ');
    T := GetTickCount;
    for i := 1 to ITERATION_COUNT do
    begin
      for j := 0 to 16 do
        Test(j);
    end;
    T := GetTickCount - T;
    Writeln(T, 'ms');

    Write('Randoms... ');
    T := GetTickCount;
    for i := 1 to ITERATION_COUNT do
    begin
      for j := 0 to 16 do
        Test(VALUES[j]);
    end;
    T := GetTickCount - T;
    Writeln(T, 'ms');

    Write('Press Enter to quit');
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Delphi x86
Duplicates... 4867ms
Randoms... 5694ms

Delphi x64
Duplicates... 8830ms
Randoms... 8814ms
Press Enter to quit

FreePascal x64
Duplicates... 6973ms
Randoms... 7035ms
Press Enter to quit
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39616543
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения :)
Вот корректный тест :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Delphi x86
Duplicates... 4524ms
Randoms... 5756ms
Press Enter to quit

Delphi x64
Duplicates... 6349ms
Randoms... 8705ms

FreePascal x64
Duplicates... 6178ms
Randoms... 7036ms

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

{$ifdef FPC}
  {$MODE DELPHIUNICODE}
  {$ASMMODE INTEL}
{$else}
  {$WARN UNSAFE_CODE OFF}
  {$WARN UNSAFE_TYPE OFF}
  {$WARN UNSAFE_CAST OFF}
{$endif}
{$U-}{$V+}{$B-}{$X+}{$T+}{$P+}{$H+}{$J-}{$Z1}{$A4}
{$O+}{$R-}{$I-}{$Q-}{$W-}

uses
  Windows, SysUtils;

function Test(X: NativeUInt): NativeUInt;
begin
  case X of
    0: Result := 100500;
    1: Result := 100501;
    2: Result := 100502;
    3: Result := 100503;
    4: Result := 100504;
    5: Result := 100505;
    6: Result := 100506;
    7: Result := 100507;
    8: Result := 100508;
    9: Result := 100509;
   10: Result := 100510;
   11: Result := 100511;
   12: Result := 100512;
   13: Result := 100513;
   14: Result := 100514;
   15: Result := 100515;
  else
    Result := 0;
  end;
end;


const
  ITERATION_COUNT = 100000000;
  VALUES: array [0..16] Of NativeUInt = (8, 4, 2, 1, 3, 0, 7, 5, 6, 12, 10, 11, 9, 15, 13, 16, 14);

var
  i, j: Integer;
  T: Cardinal;

begin
  try
    Writeln({$ifdef FPC}'FreePascal'{$else}'Delphi'{$endif} + ' ' +
      {$if SizeOf(Pointer) = 4}'x86'{$else}'x64'{$ifend});

    Write('Duplicates... ');
    T := GetTickCount;
    for j := 0 to 16 do
    begin
      for i := 1 to ITERATION_COUNT do
      begin
        Test(j);
      end;
    end;
    T := GetTickCount - T;
    Writeln(T, 'ms');

    Write('Randoms... ');
    T := GetTickCount;
    for i := 1 to ITERATION_COUNT do
    begin
      for j := 0 to 16 do
        Test(VALUES[j]);
    end;
    T := GetTickCount - T;
    Writeln(T, 'ms');

    Write('Press Enter to quit');
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39617990
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно, конечно. На 64 куча свободных регистров, обращения к стеку должны сократиться в несколько раз, давая хороший прирост.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39617993
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2Странно, конечно. На 64 куча свободных регистров, обращения к стеку должны сократиться в несколько раз, давая хороший прирост.А что странного ? Это закон природы. Ибо много ненужных перделок, жрущих ЦПУ. :)
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618021
b0rk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то, что вы сравниваете актуально при написании драйверов и всяких системныхъ утилит. на делфях и лазарусе пишут всякие корпоративные проекты, где один неправильно написанный SQL запрос даст просадку производительности в 100500 раз больше чем любой выигрыш от оптимизации компилятора. тема ни о чем.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618067
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
b0rkтема ни о чем.
Тема - о сравнении производительности, это указано в первом посте.
авторто, что вы сравниваете актуально при написании драйверов и всяких системныхъ утилит. на делфях и лазарусе пишут всякие корпоративные проекты, где один неправильно написанный SQL запрос даст просадку производительности в 100500 раз больше чем любой выигрыш от оптимизации компилятора.
На делфях и лазарусе пишут всякое. Но даже в корпоративных проектах косой Move или FillChar может дать существенную просадку. Не говоря уже о других случаях молотилки данных.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618157
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2,

Эта логика работает на большинстве компиляторов. А FPC похоже писался левой пяткой какого-то больного программиста.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618181
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOUВасилий №2,

Эта логика работает на большинстве компиляторов. А FPC похоже писался левой пяткой какого-то больного программиста.
Нормально FPC написан, не надо грязи
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618216
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorНормально FPC написан, не надо грязи

собственно потому эту тему и завёл. Хотелось бы какого то развёрнутого сравнения компиляторов от специалиста по последним. Качества выдаваемого байт кода, возможностей/настроек и главное - как эти возможности/настройки использовать на благо скорости и надёжности. Хотя, конечно, такое и в целую книгу может не влезть. Но возможно кто то поробовал. По идее только разработчики самих компиляторов и возможно нескольких преподавателей по специальности компиляторов способны на такой анализ. А личный опыт даёт кусочную и зачастую субъективную картинку, хотя конечно тоже достоин рассмотрения. Проблема личного опыта в том, что он пропущен через призму специфичных компоненков и настроек. По идее прочтение подобного материала должно дать картинку по ожидаемой производительности вне зависимости ок компонентов и настроек. А то что кривыми руками и компонентами можно всё убить это и так понятно. У меня интерес скорее познавательный, нежели практический.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618233
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По крайней мере разработчики fpc доступны, и их можно потеребить насчет части из этих вопросов.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618274
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

Мы разрабатываем высоконагруженные серверные приложения под Линукс. На протяжении многих лет разработка идёт на Дельфе под виндой, а потом под Линукс собирается на FPC. Из-за этого шаблоны не юзались, постоянные траблы со строками, ограниченны в RTTI. Да и качество бинарника, как оказалось, оставляет желать лучшего, даже хуже Дельфы. В связи с этим мне дали задание следующим этапом пощупать Токио.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618293
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOUMikhail Tchervonenko,

Мы разрабатываем высоконагруженные серверные приложения под Линукс. На протяжении многих лет разработка идёт на Дельфе под виндой, а потом под Линукс собирается на FPC. Из-за этого шаблоны не юзались, постоянные траблы со строками, ограниченны в RTTI. Да и качество бинарника, как оказалось, оставляет желать лучшего, даже хуже Дельфы. В связи с этим мне дали задание следующим этапом пощупать Токио.
что там, испытательный срок ещё не закончился ?
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618782
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2По крайней мере разработчики fpc доступны, и их можно потеребить насчет части из этих вопросов. не хочется отвлекать людей от дела со своими хотелками, да и не факт что они пойдут на встречу. Скорее надо поискать в сторону работ преподов и аспирантов по профильным специальностям. Как известно, паскаль часто используют в вузах, должен же кто то когда то озаботиться сей проблемой. Особенно если специальность связана с компиляторами.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618814
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko...Как известно, паскаль часто используют в вузах, должен же кто то когда то озаботиться сей проблемой. Особенно если специальность связана с компиляторами.

Те наши ВУЗы, где используется паскаль, точно ничего сделать не смогут.
А те, где используется не паскаль, с паскалем вряд ли станут работать.
Хотя вполне возможно, что не смогут и те, где используется не паскаль.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618820
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДMikhail Tchervonenko...Как известно, паскаль часто используют в вузах, должен же кто то когда то озаботиться сей проблемой. Особенно если специальность связана с компиляторами.

Те наши ВУЗы, где используется паскаль, точно ничего сделать не смогут.
............

ну они же пишут какието там свои дипломные и прочие работы. Преподы что теорию компиляторов читают должны же как то на примерах сравнивать что к чему приводит при написании компилятора. Или у меня совершенно неправильное представление о кухне в сих вузах? Когда я учился по нашей специальности всё выглядело примерно так.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618831
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko...
ну они же пишут какието там свои дипломные и прочие работы. Преподы что теорию компиляторов читают должны же как то на примерах сравнивать что к чему приводит при написании компилятора. Или у меня совершенно неправильное представление о кухне в сих вузах? Когда я учился по нашей специальности всё выглядело примерно так.


Товарищ генерал-майор, товарищи члены экзаменационной комиссии!
Советский народ под руководством Коммунистической партии Советского Союза огромное влияние уделяет Советским вооруженым силам, и в частности процессу внедрения автоматизации в систему управления войсками (АСУВ).
Для быстрой и качественной разработки программного обеспечения представляется важным использование современных развитых языков программирования, в частности - языка Снобол.
...
В данной дипломной работе рассматривается разработка важного компонента системы программирования на язые Снобол, а именно - лексического анализатора...


Сомнительно, чтобы студенты (и преподы) работали над вопросами повышения качества кодогенерации...
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618832
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko...
ну они же пишут какието там свои дипломные и прочие работы. Преподы что теорию компиляторов читают должны же как то на примерах сравнивать что к чему приводит при написании компилятора. Или у меня совершенно неправильное представление о кухне в сих вузах? Когда я учился по нашей специальности всё выглядело примерно так.


Товарищ генерал-майор, товарищи члены экзаменационной комиссии!
Советский народ под руководством Коммунистической партии Советского Союза огромное влияние уделяет Советским вооруженым силам, и в частности процессу внедрения автоматизации в систему управления войсками, создания АСУВ.
...
Для быстрой и качественной разработки программного обеспечения представляется важным использование современных развитых языков программирования, в частности - языка Снобол.
...
В данной дипломной работе рассматривается разработка важного компонента системы программирования на язые Снобол, а именно - лексического анализатора...


Сомнительно, чтобы студенты (и преподы) работали над вопросами повышения качества кодогенерации...
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618851
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

кстати интересно. Сушествует какой то софт, который на основе машинного кода способен выдать среднее количество тактов процессора по программе (напр. с условием что все процедуры гарантированно выполняются один раз). Было бы интересно такую погонять.
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618860
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoMikhail Tchervonenko,

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

VTune ?
...
Рейтинг: 0 / 0
Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
    #39618864
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoMikhail Tchervonenko,

кстати интересно. Сушествует какой то софт, который на основе машинного кода способен выдать среднее количество тактов процессора по программе (напр. с условием что все процедуры гарантированно выполняются один раз). Было бы интересно такую погонять.
а об этом можно говорить без относительно конкретного проца?
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]