وقتی این دو کنار هم قرار میگیرند، Go مقدارهای جدید را به شکل زیر محاسبه میکند:
start = S1.start = 3
(از آنجایی که ناحیه پایینتر از S1 شروع میشود)
end = S2.end = 2
(زیرا انتهای کل محدوده با S2 تمام میشود)
max = max(S1.max, S2.max, S1.end + S2.start)
= max(10, 8, 7 + 5)
= max(10, 8, 12)
با ادغام S1 و S2، خلاصهی جدید محدودهی ۱۰۲۴ صفحهای برابر است با:
start = 3, max = 12, end = 2
مزیت این روش:
Go با استفاده از این ساختار سلسلهمراتبی از summaryها میتواند بدون نیاز به اسکن کامل بیتمپها، در چند سطح (arena → chunk → bitmap) سریعاً پیدا کند کجا فضای خالی کافی برای تخصیص span جدید وجود دارد — در نتیجه تخصیص حافظه بسیار سریعتر و مقیاسپذیرتر انجام میشود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Post #41384
14
Forwarded from Gopher Academy