Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 197 198 199 200 201 202 203 204 [205] 206   вперед  Ctrl
 Re: Какие новости в мире Delphi ?  [new]
Сергей Фролов
Member

Откуда:
Сообщений: 1546
rgreat
Людей умеющих сделать на 100% оптимальный алгоритм в суровой реальности сложных задач - около нуля.

Поэтому виноват компилятор. И Delphi. Л - логика!
30 май 20, 15:39    [22142727]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4236
rgreat
Узкое место в расчетах это почти всегда не проблема компилятора а проблема алгоритмов.
Есть куча задач, оптимизировать которые либо невозможно, либо практически невозможно (особенно, когда алгоритмы - не твои) - архиваторы, хэширование...
Парсинг какой-нибудь, оптимизированный уже до уровня "дальше некуда".

rgreat
Людей умеющих сделать на 100% оптимальный алгоритм в суровой реальности сложных задач - около нуля.


В том числе и поэтому уровень качества бинарника, созданного компилятором, приобретает ценность.
30 май 20, 17:22    [22142759]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

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

Ага, есть 1% задач, где скорость скомпилированного кода критична и при этом делать ассемблерные вставки по каким-то причинам не эффективно.

Вот тут стоит написать (или взять готовую) либу на неком особо высокопроизводительном языке.

Но как я уже сказал это хорошо если 1% задач а потому не сильно важно.

Сообщение было отредактировано: 30 май 20, 17:48
30 май 20, 17:50    [22142777]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4236
rgreat
Ага, есть 1% задач, где скорость скомпилированного кода критична
Ну, я оценил в 2% - надеюсь, тут спорить не будем

rgreat
Вот тут стоит написать (или взять готовую) либу на неком особо высокопроизводительном языке.


Всё можно, можно даже изначально на нём писать. Речь же не об этом, а о том, что скорость кода иногда таки критична, и не хотелось бы для её ускорения выполнять дополнительные действия, особенно такие, как переписывать куски кода на другой яп.
30 май 20, 18:12    [22142787]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
alekcvp
Member

Откуда:
Сообщений: 2247
rgreat

Вот тут стоит написать (или взять готовую) либу на неком особо высокопроизводительном языке.

Fortran! Fortran! Ну наконец-то он пригодится! Хотя...

Сообщение было отредактировано: 30 май 20, 18:40
30 май 20, 18:42    [22142806]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
makhaon
Member

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

всё так. я у себя несколько критичных мест, примерно 0.05% от всех миллионных проектов запилил на mmx'е (для примера - фильтры-свертки). и этого хватило. остальной код улучшаю алгоритмически либо за счет многопоточности, которая даже на процессоре может дать прирост в 5-6 раз, и этим действительно заметно, а не те, компиляторные, слёзы. не говоря о gpu.
По реализациям алгоритмов. У нас в коде пришлось выбросить плюсовую реализацию декодера RLE (юзаем для хитрых jpeg'ов стороннюю плюсовую либу и rle там же), потому что она 3 раза медленнее делфевой (!), написанной 'в лоб' без оптимизации.

Сообщение было отредактировано: 30 май 20, 21:08
30 май 20, 21:01    [22142863]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Сергей Фролов
Member

Откуда:
Сообщений: 1546
Я смотрю у всех какие-то интересные проекты на Delphi. Самобытные. Мне, почему-то, казалось, что у большинства всякие учётные системы. Та самая ниша .NET, которая у Delphi хлеб отнимает. А оказывается всё не так. Удивительное рядом.

Ну и про оптимизацию и компиляторы. В большинстве задач тормоза - это БД, а отнюдь не язык программирования.
30 май 20, 21:51    [22142879]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
rgreat
Member

Откуда:
Сообщений: 6058
YuRock
Ну, я оценил в 2% - надеюсь, тут спорить не будем
Сойдемся на том что мои 1% это 50% от твоих 2% где дельфовый ассемблер неприменим.

Сообщение было отредактировано: 30 май 20, 22:37
30 май 20, 22:39    [22142891]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Sapersky
Member

Откуда:
Сообщений: 66
В целом соглашусь, что сверхбыстрый компилятор среднему разработчику редко нужен. Ну вроде как Феррари в городе непрактична, и по раздолбанному асфальту быстрее Логана всего на 5-10%.
Поэтому можно понять команду разработчиков Дельфи, которая не трогает компилятор (или там сейчас просто нет людей, которые не боятся трогать).
Но, честно - неужели вы не хотите Феррари? :)

Да и не все тошнят в пробках, у меня вот местами вполне автобаны (обработка изображений в реальном времени).
Конкретный пример, рекурсивный гауссовский блюр. С алгоритмом ничего особо не сделаешь, он и так самый или один из самых быстрых для большого радиуса блюра. GPU не предлагать - это, продолжая транспортную метафору, примерно как самолёт, для которого нужен аэродром и нужно сначала доехать до аэродрома.
Скорость разных вариантов (во сколько раз быстрее базового):
Delphi x86: 1.0
Delphi x64: 1.4
Си переписанный в лоб: 2.55
Delphi + asm (SSE): 4.54
Си заточенный под SSE4: 5.37
Си заточенный под AVX: 10.1 (!)
Вроде бы преимущество Си+SSE над Delphi+SSE не такое большое (и его можно объяснить разными версиями SSE) - но сравните краткость и читабельность кода:
+

procedure xLine_GaussR32_SSE(Src : Pointer; Dst : PSingle4; Cnt, SrcStep : Integer; gp4 : PGaussRData4);
asm
push esi
push ebx
mov esi, gp4
mov ebx, SrcStep
movaps xmm1, [esi] // xp
movaps xmm2, [esi + 16] // yp
movaps xmm3, [esi + 32] // yb
pxor mm7, mm7
@cycle:
// xc[0] := Src.b; xc[1] := Src.g; xc[2] := Src.r; xc[3] := Src.a;
movd mm0, [eax]
punpcklbw mm0, mm7
movq mm1, mm0
punpcklwd mm0, mm7
punpckhwd mm1, mm7
CVTPI2PS xmm0, mm0
CVTPI2PS xmm7, mm1
movlhps xmm0, xmm7
// yc[0] := (a0*xc[0])+(a1*xp[0])-(b1*yp[0])-(b2*yb[0]);
movaps xmm4, [esi + 64] // a0
mulps xmm4, xmm0 // (a0*xc[0])
movaps xmm5, [esi + 80] // a1
mulps xmm5, xmm1 // (a1*xp[0])
movaps xmm6, [esi + 96] // b1
mulps xmm6, xmm2 // (b1*yp[0])
movaps xmm7, [esi + 112] // b2
mulps xmm7, xmm3 // (b2*yb[0])
addps xmm4, xmm5
addps xmm6, xmm7
subps xmm4, xmm6 // yc

movaps [edx], xmm4 // Dst^ := yc;

movaps xmm1, xmm0 // xp[i] := xc[i];
movaps xmm3, xmm2 // yb[i] := yp[i];
movaps xmm2, xmm4 // yp[i] := yc[i];

add eax, ebx
add edx, 16
dec ecx
jnz @cycle

pop ebx
pop esi
emms
end;
https://godbolt.org/z/Kkv3kf
А с AVX+ в Дельфи вообще всё печально, только хардкор, только маш.коды.

Я не предлагаю комплексовать по этому поводу. Я предлагаю не воспринимать сишный компилятор как врага, от которого нужно отбиться путём подбора "правильных" тестов. На самом деле это удобный инструмент для низкоуровневой оптимизации. Если вам не надо - ОК, проходите мимо. Но и не пишите тогда хрени про 5-10% :)

Сообщение было отредактировано: 30 май 20, 23:15
30 май 20, 23:16    [22142903]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 4509
FPC, на LLVM бэкенде получил прирост производительности 18%. Самый обычный код, без вычислительных алгоритмов, ускорился почти на 1/5 (почти 11 минут из часа).
30 май 20, 23:25    [22142904]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4236
Сергей Фролов
В большинстве задач тормоза - это БД, а отнюдь не язык программирования.
Еще:
- лишние обращения к дискам;
- лишние обращения в сеть;
- блокировки (как результат логических недочётов алгоритмов, так и блокировки менеджера памяти).
30 май 20, 23:32    [22142907]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Murlokotam
Member

Откуда:
Сообщений: 26
Sapersky
Скорость разных вариантов (во сколько раз быстрее базового):
Delphi x86: 1.0
Delphi x64: 1.4
Си переписанный в лоб: 2.55
Delphi + asm (SSE): 4.54
Си заточенный под SSE4: 5.37
Си заточенный под AVX: 10.1 (!)
Вы пытаетесь это объяснить слегка задубевшему сообществу ДБ мордописателей, которые искренне не понимают, почему всякие там C# и JavaScript отняли у них хлеб,
тогда как Дельфи ведь по прежнему так быстро компилирует! древний ДБ мордо-код под win32 за свои всего-то 100 000!

И ведь это так весело в наши дни следить за пямятью,
ковыряться с нюансами работы интерфейсов (за отсутствием их легкой реализации),
дописывать самому весьма жидкие библиотеки,
бороться со странными багами в каждом новом релизе (свежую странность компилятора в последнем Sydney я уже привел в соседней ветке),
для ВЕБа применять извращенные подходы или докупать такие же недешевые решения,
и т.д. и т.п. и при всем этом быть за воротами всех майнстримов,
НО на выхлопе даже не иметь приличной производительности, которая отчасти оправдывала бы эти денежные и трудо-затраты.

Сообщение было отредактировано: 31 май 20, 01:26
31 май 20, 01:25    [22142927]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Vlad F
Member

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

Однако, почему ты до сих пор с нами, после такого-то стека претензий?
31 май 20, 03:11    [22142937]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3701
повторюсь. на 'обычном' коде. который не может быть в принципе распараллелен simd'ом, и которого 98-99.9% в проекте разница по скорости - 5-10, редко 15% в делфи. на лазаре - больше, там компилятор хуже (зато можно прикрутить разные бэкенды).
для оставшихся слёз можно юзать либо внешние либы собранные в тех же c/c++, делфи это вполне позволяет, либо тянуть в код ассемблер, что тоже вполне по силам. там хоть avx хоть что.
более того, большинство либ, где скорость категорически приветствуется, уже давно написаны и докручены. как то: кодеки jpeg, видео и т. п. тензорфлоу/керас вот недавно докрутили, к слову. мы вот сами юзаем FFVCL, удобно вполне (Sapresky в курсе :) ).
в результате имеем: гуманоидный язык для 98-99.9% случаев кода.
не как питон, который конечно юзает активно плюсы в либах, но на самом что-то без плюсов сделать часто невозможно - задница по скорости просто фантастическая.
не как c/c++, в который нормальные типы и синтаксис за 20 стандартов так и не завезли до конца, и 80-90% кода нужно переписывать на новые стандарты, потому как то, что уже есть без кровавых слёз просто нечитаемо, хоть и работает. и быстро.
не как жава/дотнет. который на тестах местами крут, но в жизни все плачут кровавыми слезами, ссылки я приводил, повторять не буду.
не как жава скрипт, который настолько всех задрал, что в конце концов завезли костыли - типы. завез, к слову, создатель делфи же в результате нужно опять же 80-90% кода переписывать. потому как кодовая база просто ужасна.

Сообщение было отредактировано: 31 май 20, 10:38
31 май 20, 10:40    [22142964]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3701
сторонние процедуры, как то - базы данных, файлы, сети отнимают просто несоизмеримо больше времени чем собственно сам код делфи. вот просто - порядки и порядки.
вот я gdi+ относительно недавно заюзал у себя - то просто тормозное говно, не смотря на то, что написан на плюсах. сильно плюсы ему помогли? и сильно бы помогло то, что код вызова gdi+ тоже был бы на плюсах?
у нас вот в серверах, которые перемалывают многие гигабайты данных самое узкое место - это база данных. после оптимизации (точнее - полного переписывания) скриптов удалось скорость обработки файлов улучшить в 8-20 раз. какой нахер симд?
по предыдущему посту, можно скорость компиляции c/c++ еще вспомнить. я как-то пописывал куски для ардуины. это просто какой-то ужас: компилятор собирает пару строк сишных сырцов минуту. такое чувство, что быстрее будет руками получившийся бинарь собрать :) и вот это вирзо нам предлагают в качестве идеального образцового языка?
31 май 20, 11:32    [22142968]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 860
Два вывода:
- у дельфистов от кода С++ тушь течёт;
- код С++ у дельфистов компилируется слишком долго.
31 май 20, 13:04    [22143026]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Sapersky
Member

Откуда:
Сообщений: 66
Вопрос относительно по теме: если кто-то поставил себе С-Builder 10.4, можете посмотреть, есть ли в IDE опции включения SSE/AVX (в 10.2 не было, хотя компилятор мог).
И если не сложно, проверить код, который я выкладывал: https://godbolt.org/z/Kkv3kf
компилирует ли (clang-based компилятором) и какой получается ассемблер.

Сообщение было отредактировано: 1 июн 20, 14:25
31 май 20, 23:06    [22143367]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
didgik
Member

Откуда:
Сообщений: 912
Sapersky

Вопрос относительно по теме: если кто-то поставил себе С-Builder 10.4, можете посмотреть, есть ли в IDE опции включения SSE/AVX (в 10.2 не было, хотя компилятор мог).

Не нашел такой опции
1 июн 20, 11:50    [22143553]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Murlokotam
Member

Откуда:
Сообщений: 26
makhaon
Murlokotam,

чё ж ты на делфе сидишь то, раз уж она такая плохая? иди в плюсы и не ной цепью приковали?
Отвечаю как есть. Я вынужден заниматься поддержкой старого большого проекта на Дельфях в производственной сфере. И мне за это хорошо платят.
Но в это же время мне платят, чтобы я постепенно разбивал этот проект на части и переводил части этого проекта с Дельфей на всем известную технологию от того же Папы Карло (поскольку, кроме меня в нашей компании "многостаночников" больше нет и я вообще последний на этой Дельфи поддержке).
Иногда мне кажется, что может быть некоторые части несколько подправив можно оставить и на новых Дельфях (например, для Линукса). Но к сожалению мне кажется, что пока мои эксперименты больше похожи лишь на бесполезную трату времени.

Сообщение было отредактировано: 2 июн 20, 05:30
2 июн 20, 05:31    [22144131]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Sapersky
Member

Откуда:
Сообщений: 66
didgik
Sapersky
Вопрос относительно по теме: если кто-то поставил себе С-Builder 10.4, можете посмотреть, есть ли в IDE опции включения SSE/AVX (в 10.2 не было, хотя компилятор мог).
Не нашел такой опции

Ну понятно. Я долго искал, как это включить в 10.2, и оказалось, что только через командную строку. После чего мне расхотелось возиться с Билдером.
Хотя в 10.4 обещают поддержку libSIMDpp, и наверное как-то SIMD будет работать.

Забавно, что модератор(?) потёр часть моего поста, где говорилось, что я не хочу скатываться в срачики c Дельфи-фанбоями. Т.е. теперь придётся? :)
2 июн 20, 23:26    [22144565]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Barlone
Member

Откуда:
Сообщений: 1402
Sapersky
Я долго искал, как это включить в 10.2, и оказалось, что только через командную строку. После чего мне расхотелось возиться с Билдером.
Хотя в 10.4 обещают поддержку libSIMDpp, и наверное как-то SIMD будет работать.

А что именно там включается через командную строку? Поддержка инструкций во встроенном ассемблере, встроенные функции, или автоматическое использование инструкций компилятором?
3 июн 20, 09:06    [22144686]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Sapersky
Member

Откуда:
Сообщений: 66
Автоматическое или полуавтоматическое использование, вроде примера, который я выкладывал на godbolt.
И надо уточнить, что это может быть не конкретная опция, а возможность писать в строке произвольных параметров -msse4, -mavx и т.д., также как у godbolt или скажем fpc. В 10.2 такое не работало, хотя работала стандартная для Си-компиляторов директива -ffast-math.
Про командную строку я вычитал на форуме Эмбаркадеры, сейчас форум лежит (10.4 виновата?), но может когда-нибудь оживёт.
https://forums.embarcadero.com/thread.jspa?threadID=236970&tstart=0
3 июн 20, 14:53    [22144939]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7358
Вчера установил последнюю версию программы зарплата, апрельскую.))) Програмка американская. Вот такие новости

К сообщению приложен файл. Размер - 88Kb


Сообщение было отредактировано: 9 июн 20, 17:35
9 июн 20, 17:27    [22148207]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
alekcvp
Member

Откуда:
Сообщений: 2247
Relic Hunter,

.hlp файлы, в 2020м...
9 июн 20, 19:32    [22148293]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Cobalt747
Member

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

ты на даты их посмотри - они с 2000 не менялись
зато есть chm от 2009-го
9 июн 20, 20:36    [22148332]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 197 198 199 200 201 202 203 204 [205] 206   вперед  Ctrl
Все форумы / Delphi Ответить