Class'lar yavaş mı? Peki ya Sealed Class'lar?

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 31

  • @ekremozer
    @ekremozer Год назад +8

    Böyle niş konuları öğrenmek çok keyifli oluyor hocam, teşekkürler.

  • @lmcgs
    @lmcgs Год назад +4

    Aslında daha fazla abilitysi yani daha fazla şey yapabilme özelliği olan her şey; daha az şey yapabilen şeylere göre daha yavaştır demek çok da yanlış olmaz diye düşünüyorum. Class, sealed class vs'den bağımsız olarak; X ve Y iki farklı yapı düşünelim. Hangisinin daha fazla özelliği varsa; diğeri daha hızlı olacaktır. Mesela Record yapısı da buna bir örnek olabilir. Mutable, immutable yapılar vb. Tabi yavaş veya hızlı olmasından bağımsız olarak; asıl olan doğru şeyi, doğru yerde kullanmaktır.

  • @ersinyilmazmuzik
    @ersinyilmazmuzik Год назад +8

    Hocam selamlar öncelikle değerli paylaşımın için teşekkür ederim.
    Benchmark sonuçlarını hesaplarken Calculate methodlarının birisi toplama birisi çarpma işlemi olarak kaldı.
    İkisinide aynı işlem(çarpma) olarak alındığında aradaki fark daha net gözüküyor. Bendeki sonuçlar aşağıdaki gibi:
    NonSealedClassBenchmark | 0.4774 ns
    SealedClassBenchmark | 0.0264 ns
    Arada yaklaşık 18 kat fark var. Dikkate değer bir fark çıkıyor. Emeğiniz için teşekkür ederim.

    • @TechBuddyTR
      @TechBuddyTR  Год назад +2

      Ben de videodan sonra farkettim durumu, değiştirip tekrar test ettim. Benzer sonuçlar çıktı :)

  • @azizovnadir
    @azizovnadir Год назад +1

    Təşəkkürlər hocam

  • @osmanozturk8838
    @osmanozturk8838 Год назад +1

    Çok çok teşekkürler. Kısa net öz bir paylaşım oldu. Faydalandım. Emekleriniz ve zaman ayırdığınız icin tekrar tesekkur ve tebrik ederim.

  • @kerimhasanyildirim
    @kerimhasanyildirim Год назад +3

    Helper classlarımızı sealed olarak tanımlamak mantıklı geldi. Bu videoyu izledikten sonra.

  • @muhammedaliak5873
    @muhammedaliak5873 Год назад +1

    Hocam programlamada ilk senem ve her gün, böyle de mi bir şey varmış diye şaşırıyorum :)

    • @TechBuddyTR
      @TechBuddyTR  Год назад

      Daha neler var neler :)

    • @muhammedaliak5873
      @muhammedaliak5873 Год назад

      @@TechBuddyTR severek takip ediyorum hocam. Notumu alıyorum, deniyorum deniyorum ta ki yapana kadar. Emeğinize sağlık hocam

  • @kskteen
    @kskteen 29 дней назад +1

    Selam
    3:12 de söylenenlere ek olarak ;
    Student referensını gösteren human nesnesi human kodunu,direk referans nesne eşleşmesi olanlar da kendilerine ait olanları çağırır.
    Virtual da gösterdiği asıl nesne ne ise onu çağırır.
    public class Program
    {
    public static void Main()
    {
    Human human=new Human();
    human.Talk(); //Human talks
    Student student=new Student();
    student.Talk(); //Student talks
    Human humanStudent=new Student();
    humanStudent.Talk(); //Human talks (Eğer virtual ile override edilseydi Student talks basacaktı.)

    }
    }
    public class Human
    {
    public void Talk()
    {
    Console.WriteLine("Human talks");
    }
    }
    public class Student:Human{
    public void Talk()
    {
    Console.WriteLine("Student talks");
    }
    }

  • @user-ud6te7di5d
    @user-ud6te7di5d Год назад +1

    NonSealedClass'taki methodu virtual tanımlamasaydık nasıl bir sonuç alırdık?

    • @TechBuddyTR
      @TechBuddyTR  Год назад +1

      Muhtemelen çok daha yakın sonuçlar alırdık birçok case de

    • @rcpsntrk
      @rcpsntrk Год назад +2

      @@TechBuddyTR O zaman hız farkı sealed tan değilde virtualdan kaynaklanmış olmuyor mu?

    • @TechBuddyTR
      @TechBuddyTR  Год назад +1

      @@rcpsntrk işin içine inheritance girdiğinde, o virtual metodlar bir şekilde override edildiğinde işin rengi değişirdi. İşte bu tarz durumlar haricince sealed tarafındaki bahsettiğim devirtualization giriyor işin içine.

    • @dizmans
      @dizmans Год назад +2

      Methodların ikiside çarpma ve virtual olmadığında;
      NonSealedClassBenchmark | 0.0107 ns | 0.0157 ns | 0.0140 ns | 0.0022 ns
      SealedClassBenchmark | 0.0253 ns | 0.0319 ns | 0.0467 ns | 0.0000 ns
      Eğer ki override ihtiyacımız varsa; sealed yapamayız. Sealed yaptığımızıda miras veremeyiz. Birbirinin alternatifi gibi bir durumda olmadığı için bu şekilde karşılaştırılmasının pek bi mantığı yok aslında.
      Çünkü ben ihtiyaç olmadığında ne sealed yapıyorum, ne virtual. Durup dururken niye virtual yapalım? Niye sealed yapalım?
      Yada çok büyük bir noktayı gözden kaçırıyorum şuanda :)

  • @KiyidakiAsk2024
    @KiyidakiAsk2024 Год назад +1

    Galiba Sealed kullanmamaya devam edeceğiz. Güzel video

  • @dankogulsoy
    @dankogulsoy Год назад

    Eline sağlık

  • @emrahharman3040
    @emrahharman3040 Год назад +1

    Hocam iki class altındaki işlemler farklı oldu. Biri çarpma diğeri toplama. Bunun sonuca etkisi var mıdır?

    • @TechBuddyTR
      @TechBuddyTR  Год назад +1

      Çarpma toplamadan bir tık daha karışık bir işlem. Video bittikten sonra farkettim düzelttim fark iyice açıldı 🤣

  • @dizmans
    @dizmans Год назад

    Üstat, virtual olduğu için yavaş oluyor büyük ihtimal. Sealed olmasının pek bir önemi yok sanıyorum.
    Sealed classtan türeme olmuyor, haliyle override ihtimali de olmuyor. Haliyle virtual da olamıyor. Sonuç olarak virtual classa ihtiyacım varsa sealed de kullanamayacağım için.....
    NonSealedClass da metod virtual olmasa bu kadar fark olmaz diye düşünüyorum. Deneyip tekrar yazarım. Selamlar.

    • @dizmans
      @dizmans Год назад +1

      Aynen tahmin ettiğim gibi; projeyi sizin repodan indirip, iki metodu da çarpma yaptığımda ve virtualı sildiğimde...
      Bu teste göre; SEALED olan iki kat DAHA YAVAŞ.
      NonSealedClassBenchmark | 0.0107 ns | 0.0157 ns | 0.0140 ns | 0.0022 ns
      SealedClassBenchmark | 0.0253 ns | 0.0319 ns | 0.0467 ns | 0.0000 ns

  • @E_G_
    @E_G_ Год назад

    Güzel bir yayın daha, teşekkür ederiz