مدیر ارشد انجمن
وضعيت :
مهره مورد علاقه
سطح: 4
اعتبار: 1 / 80
مهارت: 10 / 783
تجربه: 22 / 100
سپاس ها 2
سپاس شده 24 بار در 24 ارسال
|
آموزش Hash table
[size=medium]این آموزش رو قبلا من در جای دیگهای هم منتشر کردم منتها چون اخیرا در موردش چند بار ازم سوال شده و موضوعش هم اهمیت داره مجددا اینجا (با کمی تغییر) تکرارش میکنم.
در انجینها و برنامههای شطرنجی، hash table چیه و ب چ معناست؟ دقیقا چ کار میکنه و باید روی چ عددی تنظیم بشه تا عملکرد انجین ما (موقع بازی یا تجزیه و تحلیل) بهینه باشه؟
پاسخ:
ببینید دوستان! همونطور ک هر کامپیوتری برای ذخیره اطلاعات، از هارد و حافظه (RAM) استفاده میکنه، هر برنامه شطرنجی هم برای ذخیره کردن واریانتهایی ک محاسبه کرده، و یا برای ذخیره ارزیابیهایی ک از پوزیسیون داشته، از یک فضایی استفاده میکنه ک بهش hash table میگن(یا ب اختصار، ht). فرض کنید در حال ارزیابی یک پوزیسیون با انجین فریتز هستید. گاهی اوقات پیش میاد ک چند حرکت ک جلو رفتید، لازم میشه برگردید و دومرتبه ب یک واریانت نگاه کنید. در این مواقع، برنامه شطرنجی شما ب جای اینکه دومرتبه از نو محاسبه و ارزیابی کنه، ب هش تیبل رجوع میکنه. بدیهیه ک این کار، سرعت و عملکرد انجین شما رو بسیار بالا خواهد برد. اما....
اگر ht بیش از حد کوچیک باشه، موقعی ک ب پوزیسیون قبلی رجوع میکنید، ممکنه اطلاعات قبلی پاک شده باشن. ممکنه بگید خب کاری نداره ک! سایز ht رو هر چ بزرگتر تنظیم میکنم! باید بدونید ک مساله ب این راحتیها هم نیست چون اگر ht بیش از حد بزرگ تعریف شده باشه، ممکنه حتی سرعت انجین شما پایینتر از حد عادی هم بیاد!! ب چ علت؟ ب خاطر اینکه حجم ht باید با سختافزار کامپیوتر شما هماهنگ و همخوان باشه، مخصوصا با پردازشگر (یا همون cpu) و همینطور حافظه سیستمتون یا RAM.
خب چکار باید کرد؟
✔️✔️✔️روشهای مختلفی برای تنظیم ht وجود داره ولی ب نظر من یکی از سادهترین و در عین حال بهترین روشها برای تنظیم ht، پیروی از پیشنهاد شرکت چسبیس هست.
این شرکت فرمولی رو ب این صورت ارائه کرده
|
|
۱۷-بهمن-۹۹ ۰۸:۱۶ عصر |
|