Aşağıdaki tablo, üç veri kümesi için yukarıda açıklanan çeşitli sağlama işlevlerinin performansını özetler:
1) Merriam-Webster'in 2. Uluslararası Kısaltılmamış Sözlüğünde (311.141 dizgi, ort. Uzunluk 10 karakter) girişleri olan tüm kelime ve deyimler.
2) / bin / , / usr / bin / , / usr / lib / , / usr / ucb /
ve / usr / openwin / bin / * (66.304 karakter dizileri, ort. Uzunluk 21 karakter) içindeki tüm dizeler.
3) Dün gece saatlerce süren bir web tarayıcısı tarafından toplanan URL'lerin listesi (28.372 dize, ort. Uzunluk 49 karakter).
Tabloda gösterilen performans ölçüsü, karma tablodaki tüm öğelerin üzerindeki "ortalama zincir boyutu" dur (yani, bir öğeyi aramak için anahtar karşılaştırması sayısının beklenen değeri).
Webster's Code Strings URLs
--------- ------------ ----
Current Java Fn. 1.2509 1.2738 13.2560
P(37) [Java] 1.2508 1.2481 1.2454
P(65599) [Aho et al] 1.2490 1.2510 1.2450
P(31) [K+R] 1.2500 1.2488 1.2425
P(33) [Torek] 1.2500 1.2500 1.2453
Vo's Fn 1.2487 1.2471 1.2462
WAIS Fn 1.2497 1.2519 1.2452
Weinberger's Fn(MatPak) 6.5169 7.2142 30.6864
Weinberger's Fn(24) 1.3222 1.2791 1.9732
Weinberger's Fn(28) 1.2530 1.2506 1.2439
Bu tabloya bakıldığında, mevcut Java işlevi ve Weinberger'in işlevinin iki bozuk sürümü dışındaki tüm işlevlerin mükemmel, neredeyse ayırt edilemez performans sunduğu açıktır. Bu performansın esasen "teorik ideal" olduğuna inanıyorum, bir karma fonksiyonu yerine gerçek bir rasgele sayı üreteci kullanırsanız alacağınız şey budur.
WAIS işlevini, rasgele sayılar içeren sayfalar içerdiğinden ve performansı çok daha basit işlevlerden daha iyi olmadığından hariç tutacağım. Kalan altı işlevden herhangi biri mükemmel seçenekler gibi görünüyor, ancak bir tane seçmeliyiz. Sanırım Vo'nun varyantını ve Weinberger'in işlevini, küçük de olsa ek karmaşıklıkları nedeniyle dışlayacağım. Kalan dördünden, muhtemelen bir RISC makinesinde hesaplanması en ucuz olduğu için P (31) 'i seçerdim (çünkü 31 iki gücün iki gücünün farkıdır). P (33) hesaplamak benzer şekilde ucuzdur, ancak performansı marjinal olarak daha kötüdür ve 33 kompozittir, bu da beni biraz sinirlendirir.
alay etmek