Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Итоги 2017 года  [new]
под ван
Guest
Перехвачу эстафету у чччД:

Опять забыли подытожить?

1. Delphi Tokyo вышла, с поддержкой Android 8 (да-да, в прошлом году чччД говорил про Android 9 - так что налицо регресс).
2. Delphi Tokyo вышла аж три с половиной раза, с учётом всех обновлений. С - стабильность.
3. Хуже уже, по-моему, быть не может, но я же парень дерзкий - посему предлагаю дождаться конца 2017-го, чтобы либо поглумиться над моей дерзостью, либо восхититься моей прозорливостью.


С Новым годом всех.
Аминь.
31 дек 17, 17:56    [21076284]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
rgreat
Member

Откуда:
Сообщений: 4339
Все пропало!
31 дек 17, 19:24    [21076408]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
под ван
Guest
rgreat
Все пропало!

А представь: 31-го декабря 2018-го Кэнту уже не будет в живых - устанет бесконечно вытаскивать и оправдываться, и свалит от нас, потом с пяток дельфийских MVP совершат каминаут и открыто заявят о своей необратимой миграции на C# и Java, ещё пара популярных евангелистов отменят свои выступления и все их запланированные семинары накроются медным тазом? Ну и Эмба, словно контрольным в зелёный лоб, объявит о продаже своего не оправдавшего надежд актива. И это я ещё до сих пор не выпил новогоднюю, и поэтому оптимистично прогнозирую
31 дек 17, 19:46    [21076443]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Кар-Кар
Guest
В случае апокалипсиса кто-то должен будет fpc запихнуть под вышедшие IDE, хаками, хуками, как-нибудь.
Либо я не в курсе, что такое fpc, главное, чтоб проекты из-под родимой компилировать с новыми фичами. Кратко: embarcadero не нужн
31 дек 17, 20:00    [21076457]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5849
AFAIK,

fpc - самый говеный компилятор из всех существующих в мире за последние надцать лет

кто хочет - может оспорить с тестами и примерами кодогенерации
31 дек 17, 23:13    [21076724]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Док
Member

Откуда: Казань
Сообщений: 5702
Siemargl
fpc - самый говеный компилятор из всех существующих в мире за последние надцать лет

было бы интересно послушать твои аргументы :)
1 янв 18, 01:56    [21076876]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Кар-Кар
Member [заблокирован]

Откуда:
Сообщений: 21
Значит эмбаркадер нужен.

Исходники cheatengine посмотрел, судя по дате летом перекачивал. Так он теперь на лазарусе, формы lfm стали, но код-то слишком тяжко было бы переписывать т.е. очень совместимый компиль внутри выходит. По плану Z он тоже претендует стать донором.

Ну. не дойдет же, по итогам от себя: очень категорично только для платформ делается.
1 янв 18, 03:04    [21076947]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 59003
Кар-Кар> Ну. не дойдет же, по итогам от себя: очень категорично только для платформ делается.

Изложи мысль завтра. А сегодня ложись спать, отдохни. С Наступившим!

Posted via ActualForum NNTP Server 1.5

1 янв 18, 03:14    [21076956]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
Кар-Кар
Member [заблокирован]

Откуда:
Сообщений: 21
Гаджимурадов Рустам,

Я просто хочу немного windows)) Ассемблера, инструкций avx и готовых графических движков на DirectX в комплекте.
С Новым Годом!
1 янв 18, 03:18    [21076960]     Ответить | Цитировать Сообщить модератору
 Re: Итоги 2017 года  [new]
defecator
Member

Откуда:
Сообщений: 38583
Кар-Кар
Гаджимурадов Рустам,

Я просто хочу немного windows)) Ассемблера, инструкций avx и готовых графических движков на DirectX в комплекте.
С Новым Годом!

Отличный супер-пупер 2D/3D движок с физикой:
http://www.asphyre.net/products/pxl
Пользуюсь уже не первый год, полёт отличный !

автор
Multiple desktop and mobile platforms are supported,
along with native hardware support for compact singleboard computers
including devices such as Raspberry PI, Intel Galileo, BeagleBone Black among others.

For desktop applications, multiple providers are available including OpenGL, DirectX 7, DirectX 9 and DirectX 11
for displaying real-time graphics,
while mobile and singleboard applications can take advantage of OpenGL ES provider.
In addition, fully compliant Software Rendering is provided that can be used both on desktop,
mobile and singleboard devices.


автор
Supported platforms with Embarcadero Delphi XE 8+
  • Windows 32-bit and 64-bit
  • Mac OS X
  • Android
  • iOS 32-bit and 64-bit

    Supported platforms with FreePascal 3.0.0+ / Lazarus 1.4+
  • Windows 32-bit and 64-bit
  • Linux 32-bit, 64-bit and ARM
  • Mac OS X (32-bit for Carbon, 64-bit for Cocoa)
  • SingleBoard devices: Raspberry PI, Intel Galileo, BeagleBone Black, Olimex OLinuXino, etc.
  • Android ARM and Intel (experimental).
  • 1 янв 18, 11:40    [21077134]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Док
    Siemargl
    fpc - самый говеный компилятор из всех существующих в мире за последние надцать лет

    было бы интересно послушать твои аргументы :)

    ужасное качество кодогенерации и соответствующий результат, например 19539233
    1 янв 18, 12:11    [21077156]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Няшик
    Member

    Откуда: Екатеринбург
    Сообщений: 885
    Могу подтвердить что fpc медленнее. Мой интерпретатор работает быстрее на Delphi, примерно на 3 секунды

    Но возможно это из за незнания особенностей той платформы
    1 янв 18, 15:13    [21077318]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Кар-Кар
    Member [заблокирован]

    Откуда:
    Сообщений: 21
    defecator
    Отличный супер-пупер 2D/3D движок с физикой:
    http://www.asphyre.net/products/pxl
    Пользуюсь уже не первый год, полёт отличный !
    Прозрачность проблема, откровением было когда узнал, что нужно рисовать в определенном порядке, смарт-конвейер какой-нибудь нужен. Поизучаю, под XE7 пока потребовало System.Hash из новых версий.
    1 янв 18, 19:56    [21077534]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    Siemargl
    Док
    пропущено...

    было бы интересно послушать твои аргументы :)

    ужасное качество кодогенерации и соответствующий результат, например 19539233

    тебя никто не заставляет,
    пользуйся какашкой за две тыщи баксов
    1 янв 18, 23:36    [21077829]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    defecator
    Siemargl
    пропущено...

    ужасное качество кодогенерации и соответствующий результат, например 19539233

    тебя никто не заставляет,
    пользуйся какашкой за две тыщи баксов

    А ты столько стоишь? Шутка за 300 по нику.

    Собственно, чтобы сгладить резкость - даже примитивный компилятор имеет офигенную фору перед любыми xVM - потому проигрыш в 2-3х раза в тестовых задачах может оказаться в плюсе в реальных.

    Но в достижения 2017 я бы такое как FPC постеснялся записывать.

    P.S. В работе я использую как сравнимую по фичам студию за 500$, так и спец.IDE за 10k EU. Но негатива к Борланду как к конторе не испытываю - нормальный софт, не чета опенсурсу в 97%
    1 янв 18, 23:47    [21077846]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    defecator,

    и это, я видел твой код....
    1 янв 18, 23:49    [21077851]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    VDSoft
    Member

    Откуда:
    Сообщений: 40
    Siemargl,

    Это похвала или в смысле, - я твой труба шатал? ))
    2 янв 18, 01:14    [21077996]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    Siemargl
    defecator,

    и это, я видел твой код....


    Я надеюсь, ты упал в обморок или долго рыдал ?
    Или твой код - идеал ?

    +
    И что ?
    у меня много разных кодов
    в основном приходится работать в окружении и требованиях заказчиков/работодателей.
    2 янв 18, 14:40    [21078524]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Док
    Member

    Откуда: Казань
    Сообщений: 5702
    Siemargl
    ужасное качество кодогенерации и соответствующий результат, например 19539233

    си-шарп еще хужее, начни с него
    2 янв 18, 19:53    [21079146]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Док
    си-шарп еще хужее, начни с него

    Не шарп, а исполняющая среда моно. Моно великий тормоз, давно известно.
    2 янв 18, 20:06    [21079164]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Док
    Siemargl
    ужасное качество кодогенерации и соответствующий результат, например 19539233

    си-шарп еще хужее, начни с него

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

    вот результаты на родной винде 18160939

    defecator
    Siemargl
    defecator,

    и это, я видел твой код....


    Я надеюсь, ты упал в обморок или долго рыдал ?
    Или твой код - идеал ?


    Да нет, не все так плохо, в обоих случаях.

    Но это однозначный повод быть потерпимее к людям
    2 янв 18, 22:20    [21079412]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Siemargl
    Док
    пропущено...

    было бы интересно послушать твои аргументы :)

    ужасное качество кодогенерации и соответствующий результат, например 19539233
    тут видишь в чём проблема, большинство оптимизаций в современных компиляторах построены на, мягко скажем, рисковых оптимизациях.
    Из-за них, иногда абсолютно валидный С++ код, просто не работает в релизе. Либо на уровне языка приходится ставить ограничения (а-ля Rust).
    Кроме того fpc не использует команды новых процессоров, зато работает практически везде - для массовой разработки это самое то.
    3 янв 18, 12:41    [21079971]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Siemargl,

    Для реальных применений существуют параллельные вычисления и ассемблерные вставки со всяким-разным simd, если ограничиваться intel only. Узкое место легко и просто оптимизируется. На остальных 99.9% кода реальных 10-20% отставания не влияет никак от слова совсем. Опять же, если действительно huge вычисления нужны - то дорога в gpu, на cpu это баловство с современных реалиях.
    Ну а если пофлудить на форуме, или потроллить надо - то да - компилятор медленнее.
    3 янв 18, 13:04    [21080005]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Портировал этот код на delphi. В результате, win64 на 14% быстрее чем fpc, а вот lin_x64 ровно в два раза медленнее. Так что итоги 2017 у дельфей пожиже.
    3 янв 18, 14:09    [21080091]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    kealon(Ruslan)
    Siemargl
    пропущено...

    ужасное качество кодогенерации и соответствующий результат, например 19539233
    тут видишь в чём проблема, большинство оптимизаций в современных компиляторах построены на, мягко скажем, рисковых оптимизациях.
    Из-за них, иногда абсолютно валидный С++ код, просто не работает в релизе. Либо на уровне языка приходится ставить ограничения (а-ля Rust).
    Кроме того fpc не использует команды новых процессоров, зато работает практически везде - для массовой разработки это самое то.

    Первое положение полностью неверно - оптимизации используют безопасные преобразования. Но ошибок программера при этом вылазит больше, да.
    Новые команды - это только SIMD разных вариантов.
    makhaon
    Siemargl,

    Для реальных применений существуют параллельные вычисления и ассемблерные вставки со всяким-разным simd, если ограничиваться intel only. Узкое место легко и просто оптимизируется. На остальных 99.9% кода реальных 10-20% отставания не влияет никак от слова совсем. Опять же, если действительно huge вычисления нужны - то дорога в gpu, на cpu это баловство с современных реалиях.
    Ну а если пофлудить на форуме, или потроллить надо - то да - компилятор медленнее.

    Ты не теоретизируй, особенно если про вычисления на gpu только краем уха. Да и отставание там 100-150%.

    Kazantsev Alexey
    Портировал этот код на delphi. В результате, win64 на 14% быстрее чем fpc, а вот lin_x64 ровно в два раза медленнее. Так что итоги 2017 у дельфей пожиже.

    Однако покрутил по быстрому сейчас fpc 3.04 - сначала надо разобраться в параметрах, потом уже вердикт перепроверить.
    По крайней мере, в SSE2 он с опцией у меня смог (по умолчанию не используются) - а это много дает в плавающей точке.
    И по дефолту для -Px86_64 - SSE2 включены, чем может объясняться результ.
    3 янв 18, 14:59    [21080163]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Siemargl
    И по дефолту для -Px86_64 - SSE2 включены, чем может объясняться результ.

    Так у дельфей, в классическом компиляторе, тоже включены. Просто линуксовый компилятор дельфей вот такое вот чудо.
    3 янв 18, 15:09    [21080174]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Кстати, если кому-то интересно, тут есть сравнение производительности .NET Core vs .NET Framework vs Mono.
    3 янв 18, 15:12    [21080179]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Siemargl,

    вот расскажу такую историю, про гнус лет 5 назад, как я неделю баг искал
  • возникла бага после замены компилятора на новый, проявляется часа через 3-4 работы
  • покрыл тестам - всё пашет, тесты прямо при запуске проверяются
  • вырезаю тесты - баг повторяется


    Итог этого разбора - выяснилось, что компилятор с какого-то перепугу оптимизировал доступ к совмещённой структуре, когда тесты были включены, он её не оптимизировал. Достали уже эти UB и шибко-умные компиляторы.
  • 3 янв 18, 16:51    [21080285]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Тесты наверняка плохо выполнены. Я не теоретизирую насчет gpu. Мы занимаемся расчетами на cpu и gpu, raycast в том числе. Ещё одно. Синтаксический сахар плохо совместим с оптимизацией. Если не заниматься кликушеством, а нормальной оптимизаций, существенной разницы с плюсами не будет.
    3 янв 18, 17:35    [21080346]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    makhaon
    Синтаксический сахар плохо совместим с оптимизацией.

    золотые слова !
    3 янв 18, 18:04    [21080373]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    defecator
    золотые слова !

    Фигня это. Нет там влияния сахара на производительность. Я инлайнил операторы, нифига не меняется. А если, вдруг, на каком-то коде сказывается (хотя я такого не припомню), то это таки проблема компилятора.

    p.s. Код с вычислениями, когда в вычислениях используются не только примитивные типы, с сахаром читается сильно легче. Вот в коде для шарпа всё кондово, так для читающих его комментарии требуются :)
    3 янв 18, 18:25    [21080402]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    Kazantsev Alexey
    defecator
    золотые слова !

    Фигня это. Нет там влияния сахара на производительность.

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

    Вспомни, сколько версий компилятора вылизывали генерики,
    чтобы они хотя бы работать начали.
    3 янв 18, 18:28    [21080408]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    defecator
    Фигня это. Нет там влияния сахара на производительность.

    трансляцию сахара в код тебе компилятор организует,
    и как там написано было индусами, так и будет работать.[/quot]
    Фишка в то что квалификация этих "индусов" в абсолютном большенстве случаев выше чем тех "индусов" что пользуются их фишками.
    3 янв 18, 18:36    [21080419]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    defecator
    и как там написано было индусами, так и будет работать.
    Ты на это повлиять не можешь.

    Так оно всё так работает, хоть с сахаром, хоть без. Управляется, например, инлайном, который, кстати, одинаково глючит, что на сахаре, что на классическом коде.

    defecator
    Вспомни, сколько версий компилятора вылизывали генерики,
    чтобы они хотя бы работать начали.

    Тут ведь речь не о том что "работать начали", а о влиянии сахара на производительность. Дельфийские дженерики по сравнению с фпц вообще какашка, что уж там...
    3 янв 18, 18:37    [21080421]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    rgreat
    defecator
    Фигня это. Нет там влияния сахара на производительность.
    трансляцию сахара в код тебе компилятор организует,
    и как там написано было индусами, так и будет работать.

    Фишка в то что квалификация этих "индусов" в абсолютном большенстве случаев выше чем тех "индусов" что пользуются их фишками.

    Напомни, сколько там версий дельфи потребовалось,
    чтобы высокоумные индусы сделали рабочими генерики ?
    3 янв 18, 18:40    [21080430]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    defecator
    Напомни, сколько там версий дельфи потребовалось,
    чтобы высокоумные индусы сделали рабочими генерики ?
    Какая разница?
    Результат-то достигнут.
    3 янв 18, 18:43    [21080438]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    defecator
    Member

    Откуда:
    Сообщений: 38583
    rgreat
    defecator
    Напомни, сколько там версий дельфи потребовалось,
    чтобы высокоумные индусы сделали рабочими генерики ?
    Какая разница?
    Результат-то достигнут.

    результат достигнут эмбаркадерой, которая доила разработчиков ))))
    3 янв 18, 18:44    [21080442]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Результат-то достигнут.

    Нет, если судить по багтрекеру.
    3 янв 18, 18:54    [21080462]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Kazantsev Alexey
    Нет, если судить по багтрекеру.
    Странные метод суждений.

    Сейчас "чуть менее чем все" уже сидят на этих самых "не работающих" генериких.
    3 янв 18, 18:56    [21080466]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Kazantsev Alexey,

    автор
    Управляется, например, инлайном, который, кстати, одинаково глючит, что на сахаре, что на классическом коде.


    вангую, что там не только в инлейне проблема, сколько в перегруженных операторах и, вообще, общей структуре кода. для того, что бы алгоритм нормально расписать, надо хорошо знать, как он покладётся на ассемблер. вплоть до попадания в кэш и прочих процессорных фишек. я, например, когда пишу свой код в сложных местах, многое учитываю. разница по производительности может быть запросто в два-три раза. может больше. кроме того, можно смотреть по поводу замены дробных чисел целыми, вынесения расчетов за циклы, работы с указателями на данные, и так много всякого. существует специальный 'ассемблерный', стиль, благодаря которому можно получить почти идеальный по производительности кусок кода. да - думаю, это все и так знают.
    3 янв 18, 18:57    [21080471]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Странные метод суждений.

    Что странного? Судя по багтрекеру до сих пор глючат дженерики. Просто факт.

    makhaon,

    Это всё давно известно, но речь о другом. Алгоритм одинаковый для всех компиляторов. Все они в равных условиях.
    3 янв 18, 19:15    [21080495]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Kazantsev Alexey,

    и что тест реально показывает? то, что синтаксический сахар слабо предназначен для быстрых алгоритмов в delphi? ну ок, да - так и есть. только видишь сам - из этого делают неверный вывод о том, что весь компилятор - сплошное уг. хотя это не так. в результате польза от этих непонятных тестов близка к нулю. а вред - очень даже есть.
    3 янв 18, 19:26    [21080512]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Kazantsev Alexey,

    vb еще бы добавили - он вообще бы раз в 5 медленнее был бы :) что вообще не мешает ему занимать приличную 'долю' в языках.
    3 янв 18, 19:29    [21080517]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    makhaon
    и что тест реально показывает?

    Способности оптимизации. Ваш КО.

    makhaon
    то, что синтаксический сахар слабо предназначен для быстрых алгоритмов в delphi? ну ок, да - так и есть.

    В данном случае сахар на производительность не влияет. А дельфя там вообще не сравнивается.
    3 янв 18, 19:44    [21080553]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Kazantsev Alexey
    Дельфийские дженерики по сравнению с фпц вообще какашка, что уж там...
    если строго, в fpc макросы, а не генерики, этим он заметно выигрывает у дельфей.
    3 янв 18, 19:46    [21080556]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    kealon(Ruslan),

    Там макросы отдельно, дженерики отдельно.
    3 янв 18, 20:00    [21080578]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Kazantsev Alexey
    Кстати, если кому-то интересно, тут есть сравнение производительности .NET Core vs .NET Framework vs Mono.

    нет смысла сравниваться с моно - это опенсорсный выпердок изначально и труп в ближайшей перспективе
    makhaon
    Тесты наверняка плохо выполнены. Я не теоретизирую насчет gpu. Мы занимаемся расчетами на cpu и gpu, raycast в том числе. Ещё одно. Синтаксический сахар плохо совместим с оптимизацией. Если не заниматься кликушеством, а нормальной оптимизаций, существенной разницы с плюсами не будет.

    лучше бы реальное что то показал

    синтаксис не влияет на оптимизацию, не тот уровень
    3 янв 18, 21:27    [21080684]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Запилить нормальный рейкаст? Можно попробовать, отойти только немного от нового года. Но особо смысла не вижу, если честно, будут говорить, что де код разный.
    3 янв 18, 21:44    [21080707]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    makhaon
    Запилить нормальный рейкаст? Можно попробовать, отойти только немного от нового года. Но особо смысла не вижу, если честно, будут говорить, что де код разный.
    ну если немного отойти от н.г и посмотреть на ссылку, что я давал - это как раз рейтресинг
    3 янв 18, 21:49    [21080720]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    makhaon
    Member

    Откуда: A galaxy far far away
    Сообщений: 2811
    Вообще, надо смотреть многопоточность для начала. В плюсах есть или нет? В тестах нет важных данных, насколько прогружены ядра.
    Если многопоточность в плюсах есть и код нормально написан, можно дописать многопточку. Плохо, что в fpc нет пока анонимных функций, так сильно удобнее.
    3 янв 18, 21:52    [21080724]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Siemargl
    нет смысла сравниваться с моно - это опенсорсный выпердок изначально и труп в ближайшей перспективе

    На счёт перспективы видимо да, но с чем ещё сравнивать корку под линуксом, как не с моной.

    makhaon,

    Для шарпа там есть многопоточный вариант.
    3 янв 18, 22:13    [21080760]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Siemargl
    AFAIK,

    fpc - самый говеный компилятор из всех существующих в мире за последние надцать лет

    кто хочет - может оспорить с тестами и примерами кодогенерации

    В общем, взялся немного за документацию и тесты - не все так печально, как я себе представлял. Ну то есть печально, но оптимизатор там есть )

    TLDR - насильно включайте SSE2 для 32бит, а лучше сразу использовать 64-битную компиляцию
    +
    Он все еще худший среди оптимизирующих - но в версии 3.04 для 32-бит включение правильной оптимизации ускоряет на рэйтресинге в 1.6 раз, в основном за счет SSE.

    Что нужно не забывать, кроме О4, - насильно прописывать ему тип процессора и для 32-бит - SSE2 для плавающей точки, он автоматически это не делает.

    К сожалению, 32-битный компилятор, похоже забросили, и с AVX он уже не компилирует.
    А тот же тест в 64-битном режиме в 1.5 быстрее, чем в 32-бит (

    Впрочем - отличие по режимам процессора по ассемблерному кому минимальное - основная причина в разнице скорости - 64-бит по дефолту использует AVX, а 32-бит - x87.


    В целом, кто хочет - может дописать один из тестов, которого не хватает для Паскаля, ну или попытаться оптимизировать провальные
    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=fpascal&lang2=gpp
    6 янв 18, 09:56    [21084302]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Siemargl,

    какой смысл?
    любой тест специализирующийся на какой-то узкой области предвзятый.
    6 янв 18, 10:51    [21084341]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Интереса ради запустил шарповый код под .NET Core на линуксе. Оказалось, он быстрее дельфийского на 26%. Причём дельфийский код (10.1, Win64) работал на хост-машине, а шарповый на виртуалке.
    23 янв 18, 13:11    [21130269]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    чччД
    Guest
    Kazantsev Alexey
    Интереса ради запустил шарповый код под .NET Core на линуксе. Оказалось, он быстрее дельфийского на 26%. ...

    А что ты измерял?
    23 янв 18, 13:13    [21130277]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    НуИПоХуй
    Guest
    Все пропало.... Клиент уезжает... Гипс снимают!!!
    23 янв 18, 13:13    [21130279]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    чччД
    А что ты измерял?

    https://github.com/Mark-Kovalyov/CardRaytracerBenchmark
    23 янв 18, 13:34    [21130400]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    white_nigger
    Member

    Откуда: Тула
    Сообщений: 1882
    Kazantsev Alexey
    Интереса ради запустил шарповый код под .NET Core на линуксе. Оказалось, он быстрее дельфийского на 26%. Причём дельфийский код (10.1, Win64) работал на хост-машине, а шарповый на виртуалке.
    Ты фрипаскалевский код компилил? Он там нормально написан?
    23 янв 18, 14:28    [21130748]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    white_nigger
    Ты фрипаскалевский код компилил? Он там нормально написан?

    Да. Да. :)
    23 янв 18, 14:42    [21130849]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    white_nigger,

    он там немного академический, но такое тестирование изначально некорректно, на виртуалке может быстрее отрабатывать за счёт приоритетов, а на винде тупить за счёт приостановки задачи

    надо бы его как нить пооптимизировать и уравнять алгоритмы, что бы они одно и тоже делали, а не каждый сам по себе
    не помню что бы кардинально было отличие от плюсов больше 60% когда я его тестил
    ява с шарпом там тупили одинаково
    23 янв 18, 14:53    [21130933]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    kealon(Ruslan)
    на виртуалке может быстрее отрабатывать за счёт приоритетов, а на винде тупить за счёт приостановки задачи

    Ещё ни разу код выполняющийся на виртуалке не работал быстрее чем код на хостовой машине (я в основном работаю и тестирую на виртуалках, потому знаю о чём говорю), за исключением кода активно работающего с диском. Для интереса могу и дельфёвый в виртуалку засунуть, если ты думаешь, что это поможет :)
    23 янв 18, 15:00    [21130983]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Kazantsev Alexey,

    а ты не знал что Linux поровнее проц выдаёт чем винда?

    вот тест с моей машинки 1-е MSVC++, второй fpc:
    G:\Temp>test.cmd
    15:36:20,89

    G:\Temp>card_raytracer_cpp.exe d1.ppm
    15:36:32,96

    G:\Temp>card_raytracer.exe 1>d2.ppm
    15:36:54,43

    плюсовый код поменялся судя по отличию в выводе, что-то оптимизировали, первоначальный исходник не нашёл
    23 янв 18, 15:44    [21131298]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Kazantsev Alexey,

    эти тесты тупо причёсывать надо, иначе они производительность генераторов случайных чисел накладывают
    и сравнивать результаты на полное совпадение
    23 янв 18, 15:46    [21131307]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    kealon(Ruslan)
    а ты не знал что Linux поровнее проц выдаёт чем винда?

    Винда в тестировании вообще не использовалась. Дельфийский код запускался на вайне, который, как известно, не эмулятор, а альтернативная реализация WinAPI, которого этот код не использует.

    kealon(Ruslan)
    эти тесты тупо причёсывать надо, иначе они производительность генераторов случайных чисел накладывают
    и сравнивать результаты на полное совпадение

    В паскалевской реализации бенча используется довольно примитивный гсч. Я его перенёс в шарповый бенч, дабы идентичность обеспечить, в результате шарповый стал работать ещё быстрее.
    23 янв 18, 17:06    [21131683]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    Kazantsev Alexey,

    хз, генератор я естественно меняю и ставлю одинаковый

    но я почему-то не вижу этих 260% не на G++ не на MSVC, может я криво тестю? или у меня компилятор какой-то тюнингованный (вполне старый fpc 3.0.0 под виндой и под Linux с репа Mint)?
    под виндой оба 64-битные release. под Linux такая же лабуда была в сравнение с G++

    причём заметь, код на fpc специально не тюнингован, а один в один до порядка действий переписан с С++

    под Wine я бы не сравнивал как что работает при любых допущениях, я написал только к выссказыванию 21130748 из которого и следует что под виндой запускается и сравнивается с результатом в ВМ
    23 янв 18, 17:49    [21131876]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    kealon(Ruslan)
    но я почему-то не вижу этих 260%

    260% и я не вижу.

    kealon(Ruslan)
    под Wine я бы не сравнивал как что работает при любых допущениях

    Почему бы и нет? Там исполняется ровно тот же самый x86_64, системных вызовов в бенче нет т.ч. влияния вайна быть не может.

    С фпц ещё прикол. Один и тот же код, собранный с идентичными настройками, но под разные платформы (Win_x64, Linux_x64) показывает разный результат и результат виндового варианта значительно лучше. Линуксовый запускался в родной среде, виндовый в ней же но под вайном. Правда компилятор у меня транковый.
    23 янв 18, 18:10    [21131936]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Sapersky
    Member

    Откуда:
    Сообщений: 30
    Kazantsev Alexey
    260% и я не вижу.

    В той ветке тестеры собирали на Си с -march=native, т.е. все инструкции вплоть до AVX2/FMA, а на fpc видимо остался по умолчанию SSE2.
    Но даже если включить все инструкции в FPC, он выдаёт довольно корявый по сравнению с Си код.
    https://godbolt.org/g/eoqaRv
    https://godbolt.org/g/xXT9P3
    Использование всего 2-3 регистров, постоянные обращения к памяти, в общей сумме в 2 раза длиннее.
    Похоже, проблема в кривом инлайне - каждая "вызываемая" процедурка берёт параметры из памяти и в конце пишет результат в память. Кому не лень, можете заинлайнить вручную и проверить.
    23 янв 18, 21:03    [21132202]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Дело не в инлайне. Инлайн в целом удлиняет программу.

    Здесь же асм код от паскаля втрое! длиннее.
    23 янв 18, 21:25    [21132234]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Посмотрел я на этот бенч.

    Сдаеться мне они там меряют скорость вывода в консоль/файл а не только качество алгоритмов и компилятора. ;)
    23 янв 18, 21:43    [21132258]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Адаптировал FPC под дельфовый код. Выложите скомпиленный эталон на FPC и еще на чем нибуть.
    23 янв 18, 21:47    [21132265]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Ну или сами тестите.

    +
    program card_raytracer;
    
    {$APPTYPE CONSOLE}
    
    {$R *.res}
    
    uses
      System.SysUtils,Math;
    
    const
      Width = 512;
      Height = 512;
    
      M = 1048576; // 2^20
      J = 2045;
    var
      oldI: integer = 12357;
    type
      TFloat = double;
    
      TVector = record
         class operator Add(const v1,v2: TVector): TVector;
         class operator Subtract(const v1,v2: TVector): TVector;
         class operator Multiply(const v1,v2: TVector): TFloat; overload;
         class operator Multiply(const v: TVector; r: TFloat): TVector; overload;
    
        case integer of
          0: (x, y, z: TFloat;);
          1: (vector: array[1..3] of TFloat;);
      end;
    
      function Vector(a, b, c: TFloat): TVector; inline;
      begin
        Result.x := a;
        Result.y := b;
        Result.z := c;
      end;
    
      function rand0_1(): TFloat; inline;
      begin
        oldI := (oldI * J + 1) mod M;
        Result := oldI / M;
      end;
    
      function exp(const v1, v2: TVector): TVector;
      begin
        Result := Vector(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x -
          v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
      end;
    
      function norm(const v: TVector): TVector;
      var
        r: TFloat;
      begin
        r := sqrt(v * v);
        Result := v * (1 / r);
      end;
    
    const
      Gt: array[0..8] of integer = (
        $0003C712,  // 00111100011100010010
        $00044814,  // 01000100100000010100
        $00044818,  // 01000100100000011000
        $0003CF94,  // 00111100111110010100
        $00004892,  // 00000100100010010010
        $00004891,  // 00000100100010010001
        $00038710,  // 00111000011100010000
        $00000010,  // 00000000000000010000
        $00000010  // 00000000000000010000
        );
    
      function tracer(const o, d: TVector; out t: Tfloat; out n: TVector): integer;
      var
        k, j: integer;
        pp: TFloat;
        p: TVector;
        b: TFloat;
        c, q, s: TFloat;
      begin
        t := 1e9;
        Result := 0;
        pp := -o.z / d.z;
        if (0.01 < pp) then
        begin
          t := pp;
          n := Vector(0, 0, 1);
          Result := 1;
        end;
        for k := 18 downto 0 do
        begin
          for j := 8 downto 0 do
          begin
            if (Gt[j] and (1 shl k)) = 0 then
              continue;
            p := o + Vector(-k, 0, -(j + 4));
            b := p * d;
            c := p * p - 1;
            q := b * b - c;
            if (q <= 0) then
              continue;
            s := -b - sqrt(q);
            if (s < t) and (s > 0.01) then
            begin
              t := s;
              n := norm(p + d * t);
              Result := 2;
            end;
          end;
        end;
      end;
    
      function sampler(const o, d: TVector): TVector;
      var
        t: TFloat;
        n: TVector;
        m: integer;
        h, l, r, s: TVector;
        b, p: TFloat;
        p1, p2: TFloat;
      begin
    
        m := tracer(o, d, t, n);
        if (m = 0) then
          exit(Vector(0.7, 0.6, 1) * power(1 - d.z, 4));
    
        h := o + d * t;
        p2 := 9 + rand0_1();
        p1 := 9 + rand0_1();
        l := norm(Vector(p1, p2, 16) - h);
        r := d + n * (n * d * (-2));
        b := l * n;
        if (b < 0) or (tracer(h, l, t, n) <> 0) then
          b := 0;
    
        p := power(l * r, 99) * Ord(b > 0);
        if (m and 1) <> 0 then
        begin
          h := h * 0.2;
          if ((ceil(h.x) + ceil(h.y)) and 1) <> 0 then
          begin
            s := Vector(3, 1, 1);
          end
          else
          begin
            s := Vector(3, 3, 3);
          end;
          exit(s * (b * 0.2 + 0.1));
        end
        else
        begin
          Result := Vector(p, p, p) + sampler(h, r) * 0.5;
        end;
      end;
    
    var
      g, a, b, c, p, t, ta, tb: TVector;
      y, x, r: integer;
    
    
    { TVector }
    
    class operator TVector.Add(const v1, v2: TVector): TVector;
    begin
      Result.x:=v1.x + v2.x;
      Result.y:=v1.y + v2.y;
      Result.z:=v1.z + v2.z;
    end;
    
    class operator TVector.Multiply(const v1, v2: TVector): TFloat;
    begin
      Result := v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
    end;
    
    class operator TVector.Multiply(const v: TVector; r: TFloat): TVector;
    begin
      Result.x:=v.x * r;
      Result.y:=v.y * r;
      Result.z:=v.z * r;
    end;
    
    class operator TVector.Subtract(const v1, v2: TVector): TVector;
    begin
      Result.x:=v1.x - v2.x;
      Result.y:=v1.y - v2.y;
      Result.z:=v1.z - v2.z;
    end;
    
    begin
      writeln('P6');
      //writeln('P3');
      writeln(Width, ' ', Height);
      Write('255 ');
      g := norm(Vector(-6, -16, 0));
      a := norm((exp(Vector(0, 0, 1),g))) * 0.002;
      b := norm(exp(g,a)) * 0.002;
      c := (a + b) * (-256) + g;
      for y := Height - 1 downto 0 do
      begin
        ;
        for x := Width - 1 downto 0 do
        begin
          p := Vector(13, 13, 13);
          for r := 64 downto 1 do
          begin
            tb := b * ((rand0_1() - 0.5) * 99);
            ta := a * ((rand0_1() - 0.5) * 99);
            t := ta + tb;
            p := sampler(Vector(17, 16, 8) + t,
              norm(t * (-1) + (a * (rand0_1() + x) + b * (y + rand0_1()) + c) * 16)) *
              3.5 + p;
          end;
          //writeln(min(round(p.x),255),' ',min(round(p.y),255),' ',min(round(p.z),255));
          Write(char(round(p.x)), char(round(p.y)), char(round(p.z)));
        end;
      end;
    end.
    
    23 янв 18, 21:56    [21132279]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Сдаеться мне они там меряют скорость вывода в консоль/файл а не только качество алгоритмов и компилятора. ;)

    Там того вывода... Впрчем, я для фпц и дельфей вообще вывод отключал, у шарпа оставил.

    rgreat
    Выложите скомпиленный эталон на FPC и еще на чем нибуть.

    Могу сборку для .net core выложить если у тебя есть на чём запустить.
    23 янв 18, 22:12    [21132295]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Не, линукс не интересен.
    23 янв 18, 22:24    [21132324]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Kazantsev Alexey
    Там того вывода...
    Сотни страниц посимвольно.
    23 янв 18, 22:26    [21132329]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Не, линукс не интересен.

    Так он вообще-то кроссплатформенный...
    23 янв 18, 22:26    [21132330]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Сотни страниц посимвольно.

    760Kb. на общем фоне затраты на вывод (не в консоль разумеется: bench.exe > pic.ppm) ничтожны.
    23 янв 18, 22:28    [21132333]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Kazantsev Alexey
    rgreat
    Не, линукс не интересен.

    Так он вообще-то кроссплатформенный...
    Потому и не интересен.
    23 янв 18, 22:48    [21132379]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    rgreat
    Потому и не интересен.

    В смысле .net core кроссплатформенен и потому не интересен? Л - логика. О-о-о-о-кей. Ладно, вот тебе сборка бенча компилятором fpc 3.1.1 под винду x64 (кстати, сравни генерируемые картинки).

    К сообщению приложен файл (project1.zip - 45Kb) cкачать
    23 янв 18, 22:56    [21132391]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    kealon(Ruslan)
    Member

    Откуда: Нижневартовск
    Сообщений: 3267
    rgreat
    Kazantsev Alexey
    Там того вывода...
    Сотни страниц посимвольно.

    вот кстати у меня тоже такое впечатление складывается, паскалевский ртл никогда не оптимизировал (буферезировал) вывод, а ось может на этом контретно притормозить прогу. Завтра попробую вывод забуферизовать.
    23 янв 18, 23:09    [21132423]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Kazantsev Alexey,

    c++ 6.2 11.00s total
    gcc -O3 -march=native raytracecpp.cpp -o raytracecpp.exe

    project1.exe 30.00s total

    i7-4702MQ @2.2GHz Win8.1-x64
    23 янв 18, 23:10    [21132425]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Siemargl
    c++ 6.2 11.00s total
    gcc -O3 -march=native raytracecpp.cpp -o raytracecpp.exe

    project1.exe 30.00s total

    Я даже не сомневался на счёт с++ ;)

    Надо будет с элементами потестить (там LLVM в бэкенде), когда десятка релизнется.
    23 янв 18, 23:16    [21132432]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Siemargl
    Member

    Откуда: 010100
    Сообщений: 5849
    Kazantsev Alexey,

    LLVM суровый, но беспощадный =) Не всегда результаты однозначны.

    На мой взгляд, при сравнимом потреблении памяти, до 100% (и даже до 200) вычислительных потерь на большинстве рабочих задач можно пренебречь. Исключения - ну может некластерная математика, еще игры...
    23 янв 18, 23:27    [21132445]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Cobalt747
    Member

    Откуда:
    Сообщений: 2018
    Смешные вы, оптимизируете инлайны...

    Лучше добавьте в тест в конце вывод "в т.ч. NNN вызовов Random, XX секунд"
    23 янв 18, 23:42    [21132453]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Cobalt747
    Лучше добавьте в тест в конце вывод "в т.ч. NNN вызовов Random, XX секунд"

    На вызовы (которые, кстати, инлайнятся) rand0_1 приходится примерно 4.5% времени теста.
    24 янв 18, 00:46    [21132495]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Kazantsev Alexey
    Ладно, вот тебе сборка бенча компилятором fpc 3.1.1 под винду x64

    Delphi x86 - 48.431
    Delphi x64 - 23.220
    FPC x86 - 25.006

    (кстати, сравни генерируемые картинки).
    Отличаются!
    24 янв 18, 01:55    [21132525]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Кстати, убрал из дельфового кода inline-ы скорость увеличилась до 20 сек!
    24 янв 18, 02:04    [21132527]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Sapersky
    Member

    Откуда:
    Сообщений: 30
    У меня от инлайна не замедляется (XE8/x64), но если заинлайнить вручную самый "горячий" участок, то ускоряется почти в полтора раза.
    {
            p := o + Vector(-k, 0, -(j + 4));
            b := p * d;
            c := p * p - 1;
    }
            p.x := o.x - k; p.y := o.y; p.z := -(j + 4);
            b := p.x * d.x + p.y * d.y + p.z * d.z;
            c := p.x * p.x + p.y * p.y + p.z * p.z - 1;
    

    Ещё стандартный Random немного быстрее этого самописного на mod/div.
    24 янв 18, 02:59    [21132538]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4339
    Упс. В тесте FPC не x86 а x64 конечно.
    24 янв 18, 03:27    [21132544]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kast2K
    Member

    Откуда: Санкт-Петербург
    Сообщений: 433
    Отмечусь как наблюдатель:

    Delphi 10.2 Tokyo, сборка rgreat x64
    Проц операционка результат сек.
    Core i5 Windows7 x64 26
    Xeon E5-4650 v3 Windows server 2012 x64 39
    Xeon 5420 * 2 Windows server 2016 x64 Datacenter 32
    24 янв 18, 08:00    [21132641]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    alekcvp
    Member

    Откуда:
    Сообщений: 1089
    rgreat
    Кстати, убрал из дельфового кода inline-ы скорость увеличилась до 20 сек!

    Вот не поэтому-ли? :)
    24 янв 18, 10:22    [21133116]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    alekcvp
    Вот не поэтому-ли? :)

    Совершенно точно не поэтому ;) Это вылезает только на управляемых типах.
    24 янв 18, 10:58    [21133396]     Ответить | Цитировать Сообщить модератору
     Re: Итоги 2017 года  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Кстати, я вспомнил, что у fpc есть поддержка векторизации (с поддержкой инструкций AVX, AVX2). Попробовал этот тест переписать под векторизацию, но компилятор начал падать с InternalError :( Вот жеж...
    24 янв 18, 11:01    [21133412]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: 1 2 3 4      [все]
    Все форумы / Delphi Ответить