Junior — Middle
შესაძლებელია ახსნათ, რა იგულისხმება მეხსიერების განაწილების მექანიზმში სისტემაში?
sobes.tech AI
პასუხი AI-სგან
සමහර පද්ධතිවල මතක වෙන් කිරීමේ යන්ත්රණය යනු මෙහෙයුම් පද්ධතිය හෝ ක්රියාත්මක පරිසරය (උදාහරණයක් ලෙස, Go runtime) මතක ප්රදේශයක් වෙන් කර දත්ත හා වැඩසටහනේ කේතය ගබඩා කිරීම සඳහා ක්රියාවලියකි.
Go හි මතක වෙන් කිරීම ස්වයංක්රීයව සිදු වේ, එහි අභ්යන්තර කූඩාරම එකතුකරු (garbage collector) මගින්. නව වෙනස්කමක් හෝ වස්තුවක් නිර්මාණය කළ විට, පද්ධතිය ඒ සඳහා මතකය heap හෝ stack හි වෙන් කරයි.
- Stack යනු දේශීය වෙනස්කම් සඳහා භාවිතා වේ සහ ක්රියාවලියෙන් පිටවීමේදී වේගයෙන් නිදහස් වේ.
- Heap යනු ගතික ජීවිත කාලයක් ඇති වස්තු සඳහා වන අතර, එහි මතකය එකතුකරු විසින් කළමනාකරණය වේ.
Go හි මතක වෙන් කිරීමේ උදාහරණයක්:
package main
import "fmt"
func main() {
x := 10 // stack මත වෙනස්කම
p := new(int) // heap මත මතක වෙන් කිරීම
*p = 20
fmt.Println(x, *p)
}
මෙහි, new(int) යනු, පූර්ණ සංඛ්යාත්මක අගයක් සඳහා heap මත මතකය වෙන් කරයි, සහ එයට සංකේතකය ආපසු ලබා දේ.