FPC 2.4.2 |
FPC 2.4.2 |
volvo |
16.11.2010 9:24
Сообщение
#1
|
Гость |
12 ноября 2010 вышла новая версия FPC: 2.4.2
Немного об изменениях: 1. Введены ключевые слова Abstract и Sealed для классов, то есть, теперь конструкции "class abstract" и "class sealed" распознаются как спецификатор класса, и невозможно уже иметь в классах переменные с подобными именами: type , хотя 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... |
volvo |
16.11.2010 16:12
Сообщение
#2
|
Гость |
Теперь - результаты еще одного теста. Когда-то мы с его помощью тестировали быстродействие разных компиляторов Паскаля друг относительно друга, сейчас мне просто интересно как FPC ведет себя от версии к версии, что ускоряется, в что замедляется.. Итак, тест вычисляет скорости следующих операций (сравнивались компиляторы 2.2.0 и 2.4.2) :
Результаты: FPC 2.2.0 (совместимость) Delphi FPC FPC 2.4.2 (совместимость) Delphi FPC |
Polinom2686 |
19.11.2010 16:11
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
|
Гость |
19.11.2010 17:23
Сообщение
#4
|
Гость |
Какая версия дельфи, и почему трёхкратный слив по строкам? Даже если бы дельфа делала юникод, а ФПЦ нет, был бы лишь 2кратный слив.
|
volvo |
19.11.2010 17:42
Сообщение
#5
|
Гость |
TarasBer, ты читать умеешь? Там русским языком написано СОВМЕСТИМОСТЬ!!! Программа компилировалась в режимах {$MODE DELPHI} и {$MODE ObjFPC}, режим совместимости Дельфи сливает родному FPC-шному. Но когда я выложу результаты для Дельфи, ты еще больше удивишься. Слив действительно трехкратный (Дельфи 2009, проект НЕюникодный)
|
Гость |
19.11.2010 18:01
Сообщение
#6
|
Гость |
А, понял.
Тогда почему 2.4.2 втрое делает 2.2.0 почти на всех тестах? И вообще, каковы результаты для всех отключённых проверок, при максимальной оптимизации? А то сравнивать с проверками некорректно, может, 2.2.0 из-за них сливает. |
volvo |
19.11.2010 18:10
Сообщение
#7
|
Гость |
Цитата Тогда почему 2.4.2 втрое делает 2.2.0 почти на всех тестах? Может, потому что новая версия и должна быть как минимум не медленнее старой? Вот 2.4.2 и быстрее чем 2.2.0, причем намного. Перепроверить с отключенными проверками не смогу, я уже снес 2.2.0, и 2.4.0, две версии вместе не уживаются.Добавлено через 3 мин. В общем, передумал я делать новые тесты. Все равно найдутся те, кто будет утверждать, что это все подтасовка, и что специально была выбрана именно эта оптимизация, чтоб показать преимущество FPC, и что тесты были взяты именно эти ,потому что на всех других Дельфи самая крутая (что ДАЛЕКО не так), и что... Ну, в общем, понятно, что причин не доверять тестам может быть много. Кому нужно - делает пусть тесты самостоятельно, или сидит на старье дальше. |
Гость |
19.11.2010 18:14
Сообщение
#8
|
Гость |
> Может, потому что новая версия и должна быть как минимум не медленнее старой?
Ну это понятно, но не настолько же! Тем более, раз ты уже 2.2.0 снёс и проверить, как компилировались екзешники, что осталисть от него, уже нельзя. Думаю, дело в опциях компилятора. |
Гость |
19.11.2010 18:27
Сообщение
#9
|
Гость |
> В общем, передумал я делать новые тесты. Все равно найдутся те, кто будет утверждать, что это все подтасовка
Красиво ушёл... |
volvo |
20.11.2010 0:40
Сообщение
#10
|
Гость |
Значит, вот результаты тестов четырех компиляторов (чтоб не было разговоров о том, что я пообещал и не сделал) :
Тестирование проводилось на одной и той же машине (параметры указаны выше) для сборки Release, все проверки отключены, выставлена оптимизация по скорости для процессора Pentium4, за исключением выделенного теста. Этот проводился на Debug-сборке, Range Checking (+), Stack Checking (+), I/O Checking (-), Integer Overflow Checking (+), галочка "Generate smaller code" снята, для генерации наиболее быстрого кода.... Немного изменен также формат выводимых значений. Чтобы программа собиралась всеми вышеупомянутыми компиляторами, я замерял количество тиков процессора и выводил мега-тики: число тиков, прошедших от начала теста до его завершения, разделенное на 220 (по аналогии байты/мегабайты), чтоб в нулях не запутаться. P.S. С тестом SciMark придется немного подождать, мне пока не удалось его откомпилировать в GPC. Как только удастся - сразу опубликую результаты. |
Polinom2686 |
20.11.2010 8:15
Сообщение
#11
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
Особенно впечатлил результаты теста "Floating point".
Двукратный отрыв Virtual Pascal от FPC и огроменное отставание Delphi. |
volvo |
20.11.2010 11:29
Сообщение
#12
|
Гость |
Мне кажется, ты неправильно интерпретируешь результаты. Это - не производительность тестов (в МегаФлопсах), как у SciMark2. Это - время выполнения операций в тиках. Так что на Floating Point Test как раз не VP обгоняет FPC, а наоборот, FPC в два раза быстрее. А Дельфи - вообще рвет всех на куски.
Вот со строками - да, FPC быстрее (в родном, ObjFPC режиме) всех остальных. |
TarasBer |
20.11.2010 12:40
Сообщение
#13
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Про вещественные числа интересно.
У всех, кроме Дельфи, куча незаинлайненных процедур из одной команды? Или Дельфи научилась использовать всю глубину стека сопроцессора и ССЕ? -------------------- |
Polinom2686 |
20.11.2010 22:14
Сообщение
#14
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 0 |
Мне кажется, ты неправильно интерпретируешь результаты. Это - не производительность тестов (в МегаФлопсах), как у SciMark2. Это - время выполнения операций в тиках. Так что на Floating Point Test как раз не VP обгоняет FPC, а наоборот, FPC в два раза быстрее. А Дельфи - вообще рвет всех на куски. Вот со строками - да, FPC быстрее (в родном, ObjFPC режиме) всех остальных. Теперь понятно. А я уж думал, что FPC настолько крут, что даже Delphi рвет на лоскуты. |
volvo |
21.11.2010 0:21
Сообщение
#15
|
Гость |
Кстати, в режиме оптимизации -O3 FreePascal научился-таки оптимизировать хвостовую рекурсию, сводя ее к итерации. Тестировалось на функции Аккермана:
function Ack(n, m: LongWord): LongWord; FPC 2.4.2, Release-сборка с оптимизацией Level1 выполняется за 15475 МегаТиков, проигрывая Дельфи (Дельфийская Release сборка, максимально оптимизированная, выполняется за 10915 МегаТиков). В то время как FPC в режиме оптимизации Level1 + Level3 выполняется в 3 раза быстрее первоначального времени, за 5284 МегаТика. |
Aelita |
27.11.2010 21:35
Сообщение
#16
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: 0 |
Интересные данные!
Немного жаль, что в последней таблице нет каких-либо из старых версий Free Pascal Сообщение отредактировано: Aelita - 27.11.2010 21:38 |
volvo |
28.11.2010 21:48
Сообщение
#17
|
Гость |
Aelita, какие компиляторы и какие их параметры тебя интересуют?
Прогнал на том же тесте FPC 1.0.10, результаты прикрепляю: Эскизы прикрепленных изображений |
Aelita |
30.11.2010 3:35
Сообщение
#18
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: 0 |
Гран мерси!
Меня как раз интересовал Free Pascal 1.0.10, а также другая вершина его истории -- 2.2.4. Сообщение отредактировано: Aelita - 30.11.2010 23:16 |
Игорь |
10.12.2010 20:55
Сообщение
#19
|
Гость |
Случайно мышкой изменил размер окна FPC и теперь не могу изменить его в настройках. Когда пытаюсь это сделать появляется сообщение, что произошла какая-то ошибка. Что делать?
|
volvo |
10.12.2010 21:23
Сообщение
#20
|
Гость |
Цитата Когда пытаюсь это сделать появляется сообщение, что произошла какая-то ошибка. Что делать? Ну, раз какая-то ошибка - то что-то делать... Будет информация об ошибке конкретнее - будет конкретный ответ. |
Текстовая версия | 29.09.2024 10:06 |