Access to data in a dictionary is rarely random in practice.
In particular,
the cache is more helpful than in the above random tests,
for example due to repeated lookups of the same key,
and deletion of short-lived keys. As a rule of thumb,
the time for such operations will be similar to the time when all of the data structure is in cache.
To perform actual tests of the dictionaries on more realistic data,
we chose a representative subset of the dictionary tests of the 5th DIMACS implementation challenge [24].
The tests involving string keys were preprocessed by hashing strings to 32 bit integers,
as described in Appendix A.This preserves,
with high probability, the access pattern to keys.
For each test we recorded the average time per operation,
not including the time used for preprocessing.
The minimum and maximum of six runs can be found in Figs. 5 and 6, which also lists the average load factor.
Linear probing is again the fastest, but mostly just 20–30% faster than the CUCKOO schemes.
การเข้าถึงข้อมูลในพจนานุกรมสุ่มในทางปฏิบัติไม่ค่อยได้
โดยเฉพาะอย่างยิ่ง,
แคจะเป็นประโยชน์มากขึ้นกว่าในการสุ่มทดสอบข้างต้น,
ตัวอย่างเนื่องจากการค้นหาซ้ำของคีย์เดียวกัน,
และลบคีย์ช่วงสั้น ๆ ตามกฎของหัวแม่มือ,
เวลาสำหรับการดำเนินงานดังกล่าวจะคล้ายกับเวลาเวลาทั้งหมดของโครงสร้างข้อมูลอยู่ในแคช.
การทดสอบจริงของพจนานุกรมข้อมูลยิ่ง,
เราเลือกชุดย่อยพนักงานทดสอบพจนานุกรมของ 5 DIMACS งานท้าทาย [24]
การทดสอบที่เกี่ยวข้องกับแป้นอักขระถูก preprocessed โดย hashing สายอักขระเป็นจำนวนเต็ม 32 บิต,
ตามที่อธิบายไว้ในภาคผนวก A.This กวน,
ด้วยความสูง การเข้าถึงรูปแบบการคีย์
สำหรับการทดสอบแต่ละ ที่เราบันทึกเวลาเฉลี่ยต่อการดำเนินงาน,
ไม่รวมเวลาที่ใช้สำหรับการประมวลผลเบื้องต้นการ
ต่ำสุดและสูงสุด 6 รันสามารถพบได้ใน Figs. 5 และ 6 ซึ่งยัง มีรายการค่าเฉลี่ยโหลดปัจจัย
โดยอาศัยเส้นเป็นอีกครั้งที่เร็วที่สุด แต่ส่วนใหญ่เพียง 20 – 30% เร็วกว่าแผนงาน CUCKOO
การแปล กรุณารอสักครู่..