powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
20 сообщений из 45, страница 2 из 2
Сравнение скорости выполнения приложений скомпилированных компиляторами 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
20 сообщений из 45, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сравнение скорости выполнения приложений скомпилированных компиляторами FPC и Idera
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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