search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
261 gösterim
Program performans optimizasyonu yaparken bu 3 kavram karşımıza çıkıyor. Kısaca bu kavramları açıklar mısınız?
Genel Kavramlar kategorisinde 6.2k puan

1 cevap

0 oy

Öncelikle benchmark kelimesine bakalım.

Benchmark: rakiplerle kıyaslama yapmak, değerlendirme.

Micro-benchmark: Yapılabilecek kıyaslamaların kapsam olaran en küçüğüdür. Belirli fonksiyonları, bir implementasyonun veya alternatiflerinin hızını test etmek için yapılabilir. Ulaşılabilecek en küçük kod parçasına kod yazıldığı için bu tarz değerlendirme kodlarını yazmak zor ve zahmetli bir iştir. Dikkat edilmesi gereken noktalardan bazıları eğer JIT kullanılan bir dil ile asıl kod ve değerlendirme kodu yazılıyorsa kullanılan VM için warm-up (ısınma) sürelerini de hesaba katmak gerekir. Keza java'da yazdığınız kod her çalışmasında bir öncekine nazaran daha performanslı olacak ve bir yerde çok da değişmeyen bir grafiğe dönecektir.

Macro-benchmark: Bir fonksiyonun ne kadar performanslı çalıştığını anlamak için micro-benchmark yaptığımızı düşünelim. Veri tabanından alınan bilgilerin işlenme süresi mesela ya da bir web servisden alınan bilginin işlenilmesi. Veri tabanından alınan verinin işlenmesi güzel bir sonuç verebilir, peki veri tabanı bağlantısının ne kadar hızlı olduğu ya da bir bağlantı havuzu kullanılıp kullanılmamasının ne kadar gerekli olduğunu test etmek istersek ne yapmalıyız? En iyi test canlıda yapılan testtir (evde uygulamayın) düsturundan yola çıkarak sistemin bütün parçaları bir aradayken yani veri tabanı bağlantısı varken ya da email sunucusu bağlantısı yapılırken yürütülen testlere macro-benchmarking diyoruz. Neden böyle yapmak daha etkin sonuçlar verecektir. Toplumlardan da anlaşılacağı üzere tek tek küçük parçalar ile bu parçaların bir araya toplantığı büyük kalabalıklar aynı şekilde hareket etmiyor. Hatta bayağı farklı hareket ediyor. Bkz: quantum computing, toplum davranışları ya da elimizde proddaki uygulama.

Meso-benchmarking: Bütün fonksiyonalitenin ve bütün parçaların kullanılarak yapılabilecek olan macro ile en küçük kod parçası kullanılarak yapılacak micro benchmarking arasında kalanlara meso-benchmarking deniyor. (Java Performance, The Definitive Guide, sayfa 19) Örneğin güvenlik taraması olmadan ya da session olmadan yapılan bir fonksiyonalite testi gibi.

6.2k puan

İlgili sorular

0 oy
1 cevap 353 gösterim
353 gösterim
Selamlar, Vuetify kullanarak bir sayfa tasarlıyorum. Bir navbar yapıyorum ve takip ettiğim kursta bunun için v-toolbar kullanılıyor. Ben ise bunu kullanıp özelleştirme yaptığımda <v-toolbar flat app> gibi hata veriyor ve bunun yerine v-app-bar kullanılması gerektiğini söylüyor. İkiside aynı işi mi yapıyor? Arasındaki farklar nelerdir?
7 Temmuz 2021 Genel Kavramlar kategorisinde kupanintorunu 365 puan sordu
0 oy
1 cevap 391 gösterim
391 gösterim
Docker nedir? Docker'da Container ve Image arasındaki fark nedir?
15 Eylül 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 338 gösterim
338 gösterim
Agile, Kanban ve Scrum ne işe yarıyor? Farklılıkları nelerdir? hangisini kullanalım?
5 Eylül 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
0 cevap 176 gösterim
176 gösterim
FLUTTER ı google tarafından geliştirilen bir JS kütüphanesi olarak biliyorum. Diğerlerinden farkı nedir acaba? FLUTTER ın günümüzü ve geleceği hakkında öngörünüz nedir?
20 Ağustos 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 347 gösterim
347 gösterim
Java OOP'de soyutlama yeteneğini kazandıran Interface'ler ve Abstract Class'lar nedir ? Farkları nedir? Hangi durumlarda hangisi kullanılmalıdır? Bu kavramları bir örnek ile açıklarsak cevabı okuyan insanların aklında kalıcı bir yere sahip olur.
24 Temmuz 2020 Genel Kavramlar kategorisinde furkankahveci 167 puan sordu