Size: a a a

2020 July 14

VS

Vladimir Shchur in F# Chat
пару раз так его отправил, он дальше схему понял
источник

Г

Герман in F# Chat
Кстати, про add, C#, F# и оптимизации
В C# есть трюки, завязанные на if (typeof(T) == ... , которые позволяют определить generic arithmetic для всякой матеши
Так, что бы JIT-ом оно для примитивных типов компилилось прямо в одну инструкцию
Вот как здесь например https://habr.com/ru/post/480416/
Как я не пытался перенести этот код на F# с сохранением скорости, не получалось
Видимо, мешают наши операторы (даже с LanguagePrimitives.PhysicalEquality) или еще что-то
источник

Г

Герман in F# Chat
Здесь (если я не пропустил какие-то извращения, конечно) F# проигрывает :^)
источник

SB

S B in F# Chat
Vladimir Shchur
у меня на прошлой работе так было) ко мне приходит менеджер и говорит - заполняй статусы, а прод лежит) я ему говорю типа заполняй что хочешь, я должен поднимать прод)
не, тут люди охотно бумажки заполняют, солдат спит, а служба-то идет.
источник

SB

S B in F# Chat
а там и до овертайма недалеко.
источник

SB

S B in F# Chat
а тут ставка овертайма x2
источник

VS

Vladimir Shchur in F# Chat
Герман
Кстати, про add, C#, F# и оптимизации
В C# есть трюки, завязанные на if (typeof(T) == ... , которые позволяют определить generic arithmetic для всякой матеши
Так, что бы JIT-ом оно для примитивных типов компилилось прямо в одну инструкцию
Вот как здесь например https://habr.com/ru/post/480416/
Как я не пытался перенести этот код на F# с сохранением скорости, не получалось
Видимо, мешают наши операторы (даже с LanguagePrimitives.PhysicalEquality) или еще что-то
сделай лучше примеры на шарплабе)
источник

Г

Герман in F# Chat
Vladimir Shchur
сделай лучше примеры на шарплабе)
источник

Г

Герман in F# Chat
у нас правда есть SRTP вроде ^a when ^a: static member (+) : ..., но они костыльные
источник

VS

Vladimir Shchur in F# Chat
источник

VS

Vladimir Shchur in F# Chat
источник

Г

Герман in F# Chat
о, про Unchecked.unbox не знал
источник

VS

Vladimir Shchur in F# Chat
походу вот эти две инструкции мешают
источник

VS

Vladimir Shchur in F# Chat
а нее
источник

VS

Vladimir Shchur in F# Chat
там callvirt же лишней
источник

Г

Герман in F# Chat
источник

Г

Герман in F# Chat
вот так получилось
источник

VS

Vladimir Shchur in F# Chat
источник

VS

Vladimir Shchur in F# Chat
Герман
вот так получилось
IL_002f: stloc.0
IL_0030: ldloc.0
все равно остались правда
источник

Г

Герман in F# Chat
ну работает вроде ± за столько же
источник