Эта конструкция C# ускорила программу вдвое. Ref struct Span

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น •

  • @DevJungles
    @DevJungles  2 ปีที่แล้ว

    GitHub with code: github.com/podkolzzzin/Stream.Profiling

  • @igorpom2
    @igorpom2 11 หลายเดือนก่อน +1

    Большое спасибо за подробное объяснение! У Троелсона написано, что они есть, написано, где их низя. А вот такого практического примера нет. Еще раз спасибо. Мира нам всем!

  • @maryiaklimkovich1370
    @maryiaklimkovich1370 2 ปีที่แล้ว +4

    Как давно я ждала здесь короткого формата! Спасибо, очень ёмко и полезно!

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +1

      Спасибо, что смотрите)
      Пока по плану делать этот формат по понедельникам)
      Залетайте!

  • @andriiyustyk9378
    @andriiyustyk9378 ปีที่แล้ว +1

    Ось для чого треба писати тести. На 7:15 зміна методу Build приводить до зміни функціоналу. Так як Number має публічний геттер, стара версія дозволяла його поміняти і отримати нову/іншу строку через Build. Нова прискорена версія завжди буде повертити строку з конструктора.
    Якщо ж залишити старий функціонал - програма буде працювати повільніше, тому що створюватиметься нова строка + буде аллокаія памяті під неї.

  • @loam
    @loam 2 ปีที่แล้ว +1

    Случайно наткнулся на это видео и прям до конца сидел смотрел)

  • @НикитаПлетнев-ж1у
    @НикитаПлетнев-ж1у 2 ปีที่แล้ว +2

    Спасибо за такие интересные вещи
    Для меня как для джуна некоторые моменты сложны, но твои видео помогают лучше понимать что, зачем и как

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +1

      Привет. Спасибо, за коммент.
      Действительно, делая видосы понимаю, что они могут быть сложноваты для части аудитории и думаю со временем возьму и какие-то более обычные темы. До тех пор надеюсь не наврежу, а там может и помогу чем-нибудь)

  • @ВячеславЧижевский-х5о
    @ВячеславЧижевский-х5о 2 ปีที่แล้ว +2

    Мужик, видосы интересные!💪🏽😁😁

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว

      Рад, что смотрите))

  • @HeIvis
    @HeIvis 2 ปีที่แล้ว +4

    очень интересное видео)

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +1

      Спасибо))

  • @skope2055
    @skope2055 2 ปีที่แล้ว +1

    Во, сам в критичных моментах прибегаю к ref struct и span. Лайк за Guns N' Roses!

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว

      Оооо))
      Наконец-то нашелся, кто услышал и заценил))))

  • @nikitabukov1292
    @nikitabukov1292 2 ปีที่แล้ว +1

    С вашего позволения (на самом деле вне зависимости от разрешения) буду пиарить ваш канал среди знакомых

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +1

      Да я только рад буду))
      Спасибо!

  • @nikolay4362
    @nikolay4362 ปีที่แล้ว +2

    как же ору с нейминга роликов

  • @anikss1
    @anikss1 10 หลายเดือนก่อน

    Опознал в коде тестовое задание от своего работодателя. А чего пишу - хотел заметить, что если писать на .NET Core 2+, то там действительно оптимизировали производительность, а вот для .NET Framework Span - это всего лишь сахар для работы со слайсами, там никакого особо ускорения производительности у меня не случалось.
    И ещё один интересный момент подмечен. Пишешь библиотечную функцию для работы со строками - обязательно пиши перегрузку для того чтобы можно было передать Span. Потом кто-то скажет спасибо :-)

    • @DevJungles
      @DevJungles  10 หลายเดือนก่อน

      Прирост будет и в полном дотНете: спан все равно структура и экономит аллокацию в кучи на каждый сабСтринг

  • @OlegN74N
    @OlegN74N 2 ปีที่แล้ว +3

    а не пробовал заменить IndexOf и Substring на Split? какой будет результат?

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +4

      Пробовал)
      Там вообще кошмар: 3 аллокации - массив, первая строка, вторая строка.

  • @Hafune
    @Hafune 2 ปีที่แล้ว

    Я же правильно понимаю что если нам требуется просто не алоцируемая строка то можно передавать её как "Foo(in string value) => ..." ? или всё таки лучше даже для целой строки использовать ReadOnlySpan ?

    • @DevJungles
      @DevJungles  2 ปีที่แล้ว +1

      Строка это ссылочный тип и все равно аллокаций однажды произойдет.
      С другой стороны, если нужен лишь кусок строки, то тогда отлично подойдёт спан. И вот тогда для этого спана в куче аллокаций не будет.