Ö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.