IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> FPC 2.4.2
сообщение
Сообщение #1


Гость






12 ноября 2010 вышла новая версия FPC: 2.4.2

Немного об изменениях:
1. Введены ключевые слова Abstract и Sealed для классов, то есть, теперь конструкции "class abstract" и "class sealed" распознаются как спецификатор класса, и невозможно уже иметь в классах переменные с подобными именами:

type
T = class
Abstract: Integer;
end;

, хотя 2.4.0 это компилировал.

2. В класс TObject введены методы UnitName, Equals, GetHashCode, ToString для большей совместимости с Дельфи (в Дельфи эти методы существуют, начиная с 2009 версии)

3. Заявлено наличие давно обсуждаемого цикла for ... in , посмотрим, работает ли он на самом деле.

Есть также изменения в расположении некоторых модулей (Daemonapp, MacOSAll и DOM, а также модуля Sockets)...

Об основных изменениях можно прочесть здесь (англ): User Changes 2.4.2


Чуть позже погоняю этот компилятор на тестах, и посмотрю, как у него с исправлениями старых ошибок.


Update:
Вот результаты того же самого теста SciMark2
(Intel Core2 CPU 4400 @2GHz + 1024 Mb RAM, WinXP SP3. Настройки компиляторов: режим совместимости - Delphi, Range Checking (-), Stack Checking (+), I/O Checking (-), Integer Overflow Checking (+), генерировался быстрый код (generate faster code) для процессора Pentium4, Level 1 Optimization)

Без ключа -Large (Показать/Скрыть)

С ключом -Large (Показать/Скрыть)

И опять - довольно ощутимое увеличение быстродействия по сравнению с 2.4.0...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Теперь - результаты еще одного теста. Когда-то мы с его помощью тестировали быстродействие разных компиляторов Паскаля друг относительно друга, сейчас мне просто интересно как FPC ведет себя от версии к версии, что ускоряется, в что замедляется.. Итак, тест вычисляет скорости следующих операций (сравнивались компиляторы 2.2.0 и 2.4.2) :
  1. Доступ к члену класса (109 итераций).
  2. Вызов пустого статического метода (109 итераций).
  3. Вызов пустого динамического метода (109 итераций).
  4. Быстрая сортировка массива (Quick Sort, 108 байт).
  5. Пузырьковая сортировка массива(Bubble Sort, 150000 байт)
  6. "Древесная" сортировка массива (Tree Sort, 106 байт).
  7. Вычисление 4500 цифр числа Пи.
  8. Скорость конкатенации строк (106 итераций).
  9. Тесты скорости вещественных вычислений (109 итераций).
(тестировалось на Intel Core2 CPU 4400 @2GHz + 1024 Mb RAM, WinXP SP3. Настройки компиляторов: Range Checking (+), Stack Checking (+), I/O Checking (-), Integer Overflow Checking (+), генерировался быстрый код (generate faster code) для процессора Pentium4, Level 1 Optimization, режимы совместимости - ObjFPC и Delphi соосветственно)

Результаты:

FPC 2.2.0
(совместимость)		Delphi	FPC
Member access 11500 11500
Method call 53547 53547
Virtual method call 58062 58031
Quick sort 2375 2375
Bubble sort 45734 45719
Tree sort 313 312
PI computation 343 344
String concat. 328 94
Floating point 30016 30016
Strange attr. 6781 6203


FPC 2.4.2
(совместимость)		Delphi	FPC
Member access 4508 5015
Method call 4516 4500
Virtual method call 12109 12078
Quick sort 906 906
Bubble sort 11922 11890
Tree sort 219 203
PI computation 328 328
String concat. 344 110
Floating point 18531 18515
Strange attr. 2140 2141



Если интересно, могу этот же тест прогнать с другими компиляторами (Дельфи, Virtual Pascal, GPC)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 16.11.2010 16:12) *

Если интересно, могу этот же тест прогнать с другими компиляторами (Дельфи, Virtual Pascal, GPC)


Ну, за язык никто не тянул. Так что ждем вас с результатами тестов. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Какая версия дельфи, и почему трёхкратный слив по строкам? Даже если бы дельфа делала юникод, а ФПЦ нет, был бы лишь 2кратный слив.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






TarasBer, ты читать умеешь? Там русским языком написано СОВМЕСТИМОСТЬ!!! Программа компилировалась в режимах {$MODE DELPHI} и {$MODE ObjFPC}, режим совместимости Дельфи сливает родному FPC-шному. Но когда я выложу результаты для Дельфи, ты еще больше удивишься. Слив действительно трехкратный (Дельфи 2009, проект НЕюникодный)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






А, понял.
Тогда почему 2.4.2 втрое делает 2.2.0 почти на всех тестах? И вообще, каковы результаты для всех отключённых проверок, при максимальной оптимизации? А то сравнивать с проверками некорректно, может, 2.2.0 из-за них сливает.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Тогда почему 2.4.2 втрое делает 2.2.0 почти на всех тестах?
Может, потому что новая версия и должна быть как минимум не медленнее старой? Вот 2.4.2 и быстрее чем 2.2.0, причем намного. Перепроверить с отключенными проверками не смогу, я уже снес 2.2.0, и 2.4.0, две версии вместе не уживаются.

Добавлено через 3 мин.
В общем, передумал я делать новые тесты. Все равно найдутся те, кто будет утверждать, что это все подтасовка, и что специально была выбрана именно эта оптимизация, чтоб показать преимущество FPC, и что тесты были взяты именно эти ,потому что на всех других Дельфи самая крутая (что ДАЛЕКО не так), и что... Ну, в общем, понятно, что причин не доверять тестам может быть много. Кому нужно - делает пусть тесты самостоятельно, или сидит на старье дальше.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






> Может, потому что новая версия и должна быть как минимум не медленнее старой?

Ну это понятно, но не настолько же!
Тем более, раз ты уже 2.2.0 снёс и проверить, как компилировались екзешники, что осталисть от него, уже нельзя.
Думаю, дело в опциях компилятора.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






> В общем, передумал я делать новые тесты. Все равно найдутся те, кто будет утверждать, что это все подтасовка

Красиво ушёл...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Значит, вот результаты тестов четырех компиляторов (чтоб не было разговоров о том, что я пообещал и не сделал) :
  1. GPC 3.4
  2. FPC 2.4.2 (тестировалось в режимах Delphi и ObjFPC)
  3. Virtual Pascal 2.1 (build 279)
  4. Delphi 2009

Прикрепленное изображение

Тестирование проводилось на одной и той же машине (параметры указаны выше) для сборки Release, все проверки отключены, выставлена оптимизация по скорости для процессора Pentium4, за исключением выделенного теста. Этот проводился на Debug-сборке, Range Checking (+), Stack Checking (+), I/O Checking (-), Integer Overflow Checking (+), галочка "Generate smaller code" снята, для генерации наиболее быстрого кода....

Немного изменен также формат выводимых значений. Чтобы программа собиралась всеми вышеупомянутыми компиляторами, я замерял количество тиков процессора и выводил мега-тики: число тиков, прошедших от начала теста до его завершения, разделенное на 220 (по аналогии байты/мегабайты), чтоб в нулях не запутаться.

P.S. С тестом SciMark придется немного подождать, мне пока не удалось его откомпилировать в GPC. Как только удастся - сразу опубликую результаты.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Особенно впечатлил результаты теста "Floating point".
Двукратный отрыв Virtual Pascal от FPC и огроменное отставание Delphi.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Мне кажется, ты неправильно интерпретируешь результаты. Это - не производительность тестов (в МегаФлопсах), как у SciMark2. Это - время выполнения операций в тиках. Так что на Floating Point Test как раз не VP обгоняет FPC, а наоборот, FPC в два раза быстрее. А Дельфи - вообще рвет всех на куски.

Вот со строками - да, FPC быстрее (в родном, ObjFPC режиме) всех остальных.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Про вещественные числа интересно.
У всех, кроме Дельфи, куча незаинлайненных процедур из одной команды? Или Дельфи научилась использовать всю глубину стека сопроцессора и ССЕ?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 20.11.2010 11:29) *

Мне кажется, ты неправильно интерпретируешь результаты. Это - не производительность тестов (в МегаФлопсах), как у SciMark2. Это - время выполнения операций в тиках. Так что на Floating Point Test как раз не VP обгоняет FPC, а наоборот, FPC в два раза быстрее. А Дельфи - вообще рвет всех на куски.

Вот со строками - да, FPC быстрее (в родном, ObjFPC режиме) всех остальных.


Теперь понятно. А я уж думал, что FPC настолько крут, что даже Delphi рвет на лоскуты. lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Кстати, в режиме оптимизации -O3 FreePascal научился-таки оптимизировать хвостовую рекурсию, сводя ее к итерации. Тестировалось на функции Аккермана:

function Ack(n, m: LongWord): LongWord;
begin
if n = 0 then Result := m + 1
else
if m = 0 then
Result := Ack(n - 1, 1)
else
Result := Ack(n - 1, Ack(n, m - 1))
end;

// ...
Value := Ack(3, 12);

FPC 2.4.2, Release-сборка с оптимизацией Level1 выполняется за 15475 МегаТиков, проигрывая Дельфи (Дельфийская Release сборка, максимально оптимизированная, выполняется за 10915 МегаТиков).

В то время как FPC в режиме оптимизации Level1 + Level3 выполняется в 3 раза быстрее первоначального времени, за 5284 МегаТика.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский

Репутация: -  0  +


Интересные данные!
Немного жаль, что в последней таблице нет каких-либо из старых версий Free Pascal blink.gif

Сообщение отредактировано: Aelita -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Aelita, какие компиляторы и какие их параметры тебя интересуют?

Прогнал на том же тесте FPC 1.0.10, результаты прикрепляю:


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Женский

Репутация: -  0  +


Гран мерси! good.gif
Меня как раз интересовал Free Pascal 1.0.10, а также другая вершина его истории -- 2.2.4.

Сообщение отредактировано: Aelita -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






Случайно мышкой изменил размер окна FPC и теперь не могу изменить его в настройках. Когда пытаюсь это сделать появляется сообщение, что произошла какая-то ошибка. Что делать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Цитата
Когда пытаюсь это сделать появляется сообщение, что произошла какая-то ошибка. Что делать?
Ну, раз какая-то ошибка - то что-то делать... Будет информация об ошибке конкретнее - будет конкретный ответ.
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.08.2020 19:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name