ФлеймФорумПрограммирование

Что за бред в крестах творится? (15 стр)

Страницы: 114 15 16 1741 Следующая »
#210
17:51, 6 июня 2022

Что за бред в крестах творится?
Код говном заплыть стремится,
STL сдирает плату,
Строки падают с лопаты,
Комитет весь дует шмаль...
Это, братцы, не паскаль!

#211
18:18, 6 июня 2022

Mirrel
> ну прям равноценное сравнение... Точнее, если мы ручками в Паскаль засунем SIMD
> ускорения не получим?
> Или просто хотим сказать, что у Паскаля нет данных возможностей?

Always look at the source code.

If the fastest programs are hand-written vector instructions, does the host language matter? You might be more interested in the less optimised programs — more cpu seconds, less gz source code.

Всегда смотрите на исходный код.

Если самые быстрые программы представляют собой рукописные векторные инструкции, имеет ли значение основной язык? Возможно, вас больше заинтересуют менее оптимизированные программы — больше секунд процессора, меньше исходного кода gz.

#212
18:20, 6 июня 2022

samrrr
> меньше исходного кода gz
???
опять волшебники страны Оз?

#213
18:22, 6 июня 2022

1 frag / 2 deaths
> Если в стл что-то сделано через задницу то это проблемы языка. Потому что стл
> это часть языка которая везде используется.
> Про LTO я ж ниже написал
Ну я так понял ты пруфов не предоставишь. Раза 3 просил пруфы, а в ответ одни отговорки, и ноль примеров кода.

#214
18:22, 6 июня 2022

В gcc есть расширения, которые дают возможность выражать свои SIMD-намерения в простом и лаконичном виде, без всех этих _mm_xxx.

#215
18:28, 6 июня 2022

Mirrel
> расскажи мне как компилятор сможет оптимизировать данный код?

    quad[0].X := X + (charDesc.ShiftX - Font.Padding[0]) * textScale;
    quad[0].Y := Y + (charDesc.ShiftY + (Font.MaxHeight - charDesc.Height) - Font.Padding[1]) * textScale;
    quad[1].X := X + (charDesc.ShiftX + charDesc.Width + Font.Padding[2]) * textScale;
    quad[1].Y := Y + (charDesc.ShiftY + (Font.MaxHeight - charDesc.Height) - Font.Padding[1]) * textScale;
    quad[2].X := X + (charDesc.ShiftX + charDesc.Width + Font.Padding[2]) * textScale;
    quad[2].Y := Y + (charDesc.ShiftY + charDesc.Height + (Font.MaxHeight - charDesc.Height) + Font.Padding[3]) * textScale;
    quad[3].X := X + (charDesc.ShiftX - Font.Padding[0]) * textScale;
    quad[3].Y := Y + (charDesc.ShiftY + charDesc.Height + (Font.MaxHeight - charDesc.Height) + Font.Padding[3]) * textScale

CSE (заявлено, что в fpc она есть)

    
    t0 := Font.MaxHeight - charDesc.Height;
    t1 := X + (charDesc.ShiftX - Font.Padding[0]) * textScale;
    t2 := Y + (charDesc.ShiftY + t0 - Font.Padding[1]) * textScale;
    t3 := X + (charDesc.ShiftX + charDesc.Width + Font.Padding[2]) * textScale;
    t4 := Y + (charDesc.ShiftY + charDesc.Height + t0 + Font.Padding[3]) * textScale;
    quad[0].X := t1;
    quad[0].Y := t2;
    quad[1].X := t3;
    quad[1].Y := t2;
    quad[2].X := t3;
    quad[2].Y := t4;
    quad[3].X := t1;
    quad[3].Y := t4
#216
18:28, 6 июня 2022

skalogryz
> ???
> опять волшебники страны Оз?
Неужели ты думаешь я сам переводил это? Я просто в гугл забил это.

How source code size is measured
We start with the source-code markup you can see, remove comments, remove duplicate whitespace characters, and then apply minimum GZip compression. The measurement is the size in bytes of that GZip compressed source-code file.

Thanks to Brian Hurt for the idea of using size of compressed source code instead of lines of code.

То-есть есть по gz можно понять, насколько код был напихан SIMD и прочими оптимизациями и не сравнивать при этом длинну begin end vs {}

#217
18:31, 6 июня 2022

skalogryz
>     t1 := X + (charDesc.ShiftX - Font.Padding[0]) * textScale;
>     t2 := Y + (charDesc.ShiftY + (Font.MaxHeight - charDesc.Height) -
> Font.Padding[1]) * textScale;
>     t3 := X + (charDesc.ShiftX + charDesc.Width + Font.Padding[2]) * textScale;
>     t4 := Y + (charDesc.ShiftY + charDesc.Height + (Font.MaxHeight -
> charDesc.Height) + Font.Padding[3]) * textScale;
>     quad[0].X := t1;
>     quad[0].Y := t2;
>     quad[1].X := t3;
>     quad[1].Y := t2;
>     quad[2].X := t3;
>     quad[2].Y := t4;
>     quad[3].X := t1;
>     quad[3].Y := t4
Чтоб С++ так мог прийдётся ему рестрикты напихать. Чтоб он знал что  quad[1] и Font.Padding[2] ссылаются на разные участки памяти.

#218
18:34, 6 июня 2022

samrrr
> Чтоб С++ так мог прийдётся ему рестрикты напихать
я без понятия что такое рестрикты в крестах.
samrrr
> Чтоб он знал что  quad[1] и Font.Padding[2] ссылаются на разные участки памяти.
а чё... он не знает? позорно как-то.

#219
18:38, 6 июня 2022

MrShoor
> Перепиши этот код на плюсы и глянь
Похоже?
cpp: https://godbolt.org/z/bs9Yefefv
pas: https://godbolt.org/z/51aenGeEP

#220
18:41, 6 июня 2022

entryway
> pas: https://godbolt.org/z/51aenGeEP
можно добавить: -Anasmelf в опции компилятора, тогда и ассемблер будет intel, и нумерация сорцей появится

#221
18:42, 6 июня 2022

skalogryz
> а чё... он не знает? позорно как-то.
А откуда ему знать то? Нафигарил ты вызов func(&(int*)&i),*(&(Vector*)&i) или нет, но планируешь нафигарить.

#222
18:46, 6 июня 2022

entryway
> cpp: https://godbolt.org/z/bs9Yefefv
> pas: https://godbolt.org/z/51aenGeEP
Паскаль неосилил оптимизацию. Интересно как в этот раз ТС попробует доказать что Паскаль могёт в оптимизацию.

#223
18:47, 6 июня 2022

samrrr
> func(&(int*)&i),*(&(Vector*)&i)
именно, по-этому я избегаю программирования на Сях и Крестах


entryway
> pas: https://godbolt.org/z/51aenGeEP
и таки да! CSE в действии!!

%LINE 29+0 —- quad[0].X := X + (charDesc.ShiftX - font.Padding[0]) * textScale;
                mov     edi,dword [rax+8]
                mov     r10d,dword [rsi+8]
                sub     edi,r10d
                imul    edi,edx
                add     edi,ecx
                mov     dword [r9],edi
...
%LINE 35+0 —- quad[3].X := X + (charDesc.ShiftX - font.Padding[0]) * textScale;
                mov     edi,dword [rax+8]
                mov     r10d,dword [rsi+8]
                sub     edi,r10d
                imul    edi,edx
                add     ecx,edi
                mov     dword [r9+24],ecx

чудеса!

#224
18:49, 6 июня 2022

skalogryz
> именно, по-этому я избегаю программирования на Сях и Крестах
А чё, появился язык с сопоставимой скоростью кроме раста(в котором неосилили ооп)?

Страницы: 114 15 16 1741 Следующая »
ФлеймФорумПрограммирование