YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Turkish subtitles

← 03-13 Container_Performance

03-13 Container_Performance

Get Embed Code
13 Languages

Showing Revision 1 created 12/25/2015 by sp8.

  1. Kodunuzun, donanım nedeniyle
    yavaş çalışabileceği
  2. hakkında konuştuk,
  3. kayan nokta dallanma meselesi
    sorununu hatırlıyor musunuz?
  4. Pekala, bu, günümüzdeki donanımlar
    için çoğunlukla sorun değildirç
  5. Fakat hala endişe duymanız gereken
    bir konu var:
  6. kullandığınız dildeki temellerin
    performansı.
  7. Bir temel algoritmayı, örneğin sıralamayı
    ele alalım.
  8. Sıralama yapmanın bir çok
    yolu vardır,
  9. koşullara bağlı olarak,
    bazıları daha iyidir.
  10. Örneğin, çabuk sıralama genel olarak
  11. kabarcık sıralamadan daha hızlıdır, bin
    öğeden daha azının elinizde olması ya da
  12. geniş bir sıralamada, nesneler
    için arama yapıyor olmanız haricinde.
  13. Genel olarak, bunu yapmak
    için en iyi yol ikili aramadır.
  14. Fakat sıralanmamış bir dizilişte
    bir nesne bulmak bütünüyle farklıdır.
  15. Nesneyi bulmak için, her nesnesiyi
    aradığınız değer ile karşılaştırmak yerine,
  16. özet fonksiyonunu
    kullanabilirsiniz.
  17. Bu, yüm modern bilgisayar biliminin
    ve veri yapılarının temel düzenidir.
  18. Java gibi modern diller,
    bu kapsayıcıları ve algoritmaları
  19. sizin adınıza sağlar, böylece Murmur
    3 Hash fonkiyonunu ve çabuk sıralamayı
  20. tekrar tekrar yazmanıza
    gerek kalmaz.
  21. Lütfen birşeyi ortaya
    koymama izin verin.
  22. Programlamayla geçirdiğim
    yıllar boyunca,
  23. projelerin performansını sürekli olarak
    etkileyen problemin, bu dillerin
  24. sağladığı kapsayıcı nesnelerinin
    performansıyla ilişkili olduğunu gördüm.
  25. Bu müthiş, değil mi?
  26. Java, saladığı vektör sınıfıyla, nasıl
    uygun görüyorsanız o şekilde, nesneleri
  27. ekleme ve çıkarma imkanı sağlar,
    fakat bu esnekliği sağlamak için,
  28. özgün performans nitelikleri
    olan başlık altındaki
  29. bağlı liste yapısını
    kullanır.
  30. Listenin baş kısmında yürütme yaptığınız
    sürece, çok hızlıdır.
  31. Fakat eğer diğer yerlerde ekleme ya da
  32. çıkarma yaparsanız, olabilecek en kötü
    zamanda varsayılana dönecektir.
  33. Mesele şudur ki, temel sistemin
    bu kapsayıcıları sağlaması,
  34. bu kapsayıcıların, programınızla
    uygun biçimde
  35. çalışacağı anlamına gelmez.
  36. James Sutherland, Java çerçevesinin
    sağladığı spesifik veri yapılarının
  37. performansı üzerine bir dizi
    performans değerlendirmesi yayınladı
  38. ve insanların farkında olması gereken,
    performans ve işlevsellik arasında
  39. bir dizi farklılık tesipt etti.
  40. Örneğin, komut tablosunun
    performansının
  41. KomutHaritasından,
    kapsayıcıları nasıl kullandığınıza
  42. bağlı olarak, %22 daha hızlı
    olduğunu tesipt etti.
  43. İşte mesele bu.
  44. Kodunuzda kulladığınız kapsayıcı
    sınıflarının profilini çıkardınız mı?
  45. Bunların, kodunuzun yaptığı şey
    için en hızlı kapsayıcıyı
  46. kullandığından emin misiniz?
  47. Hımm, Evet, düşündüğüm şey buydu.
  48. İyi haber şu ki, bu kapsayıcıların
    performansına, Android içindeki
  49. MPI'ların profillerini çıkararak,
    görünürlük kazandırabilirsiniz.
  50. Şimdi Chris'in kodunun sınamamızdan
    geçip geçemeyeceğine bakalım.