කම්පියුටර් මතක කළමනාකරණය ගැන හිතන විට, සොෆ්ට්වේයාර් ඉංජිනේරුවන්ට දෙකේ අතර තරමක් තේරෙන්නෙයි: Garbage Collection (GC) එකේ ලේසි ලියනය, නමුත් රන්ටයිම් පෝස් සහ මතක බර. හෝ, මැනුම්‑මූලික (manual) පද්ධති, වේගවත් නමුත් ඉගෙන ගත යුතු දේ ඉතා අධික. මේ දෙකේම අඩුවක් සොයා, Proton නමැති නව සিস্টම් ප්රොග්රෑම් භාෂාව නිර්මාණය කරන විට, ලේඛකයා තෙවන මාර්ගයක් හිතාගත්තේය – GC පෝස් නොමැති, අත්‑අඩවියක් නොවන මතක කළමනාකරණය.
LAM (Lifetime Allocation Model) කියන්නේ මතකය කෙසේ භාවිතා කරන්නේ කියා සංස්කරණ සමයේම පුරාණකාලීනව අනුමාන කර, ඒ අනුව ත්රිත්ව මතක වර්ග තුළ බෙදා හැරීමයි:
- Stack – ස්ථානික, කෙටි කාලීන වරියන් සඳහා, අතින් අනුග්රහයක් නැත.
- Region (Arena) – එකම ක්රියාකාරී පරාසයකට සම්බන්ධිත ඩයිනමික් අලෝකන. පරාසය අවසන් වීමේදී O(1) වේගයෙන් සම්පූර්ණයෙන්ම මකයි.
- Heap – දිගු කාලීන, සත්ය ඩයිනමික් දත්ත සඳහා පමණක් භාවිතා වේ.
මෙම සැලැස්ම මඟින් අහඹු heap අලෝකන අඩාලවීමක් නැතිව, Region‑වල පූර්ණ මකා දැමීමක් සිදු කර, GC පෝස් ඉවත් කරයි.
Benchmark – 71.5 MB සිට 1.8 MB දක්වා
ලේඛකයා විසින් ඉතා අධික අලෝකන සිදුවීම් සමඟ තරගකාරී බෙන්ච්මාර්ක් එකක් සකස් කර, ප්රතිඵල පෙන්වීය:
- සාමාන්ය රන්ටයිම් (Baseline) – ශීර්ෂ මතක භාවිතය: 71.5 MB
- Proton + LAM – ශීර්ෂ මතක භාවිතය: 1.8 MB
- අලෝකන අතිරේකය: O(N) → O(1) Region පිරිසිදු කිරීම
- GC පෝස්: 0 ms (කොන්දේසි නැත)
ඒ අනුව, මතක භාවිතය 97.5%කින් අඩු විය. එමෙන්ම, රන්ටයිම් පෝස් නොමැතිව, වැඩි කාර්යක්ෂමතාවක් ලබා ගත හැකි විය.
කේත උදාහරණය
LAM භාවිතය කේතයේ පසුබිමට රහසක් වැනි, සංස්කරණ පියවරේදී ස්වයංක්රියව සිදු වේ. උදාහරණයක්:
fn process_data(stream: Stream) {
// Region‑යට අලෝකන ස්වයංක්රීයයි
let buffer = stream.read_chunk();
let parsed = parse_payload(buffer);
send_response(parsed);
// Region අවසන් – O(1) මකා දැමීම
}
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික පරිසරය තරමක් පරිමාණවත් වේ. LAM ආකෘතිය මෙහිදී පහත ප්රතිලාභ ලබා දෙයි:
- විශ්ව විදුහල්පති හා විශ්ව විද්යාල සිසුන්ට, මතක කළමනාකරණයේ සංකීර්ණතා අඩු කර, කේත ලියන හැකියාව ඉක්මනින් ඉගෙන ගැනීමට හැකියාව.
- දේශීය සොෆ්ට්වේයාර් සමාගම්ට, මතක බර අඩු කිරීමෙන් සේවාදායක පද්ධති කාර්යක්ෂමතාව වැඩිවීම, පාරිභෝගික අත්දැකීමේ වර්ධනය.
- ඉදිරි පරිකල්පිත AI, IoT ව්යාපෘතිවල, සම්පූර්ණ මතක පාලනය ඉතා වැදගත්; LAM මඟින් එම ව්යාපෘතිවල ගණනාවක් අඩු පරිභෝජනයක් ලබා ගත හැක.
Proton සහ LAM ආකෘතිය තවදුරටත් විවෘත මූලාශ්ර (open source) ලෙස සංවර්ධනය වෙමින් පවතී. රුචිර සංවර්ධකයන්ගේ අදහස්, පරීක්ෂණ, සහ දායකත්වය සඳහා GitHub ගබඩාව භාවිතා කරමින්, මෙය ශ්රී ලංකාවේ තාක්ෂණික නවෝත්පාදන මංපෙළේ නව මාර්ගයක් බවට පත්වෙයි.
ඔබත් මෙම නව පද්ධතියේ අත්දැකීම් හුවමාරුවට එක්වන්න. අනාගතයේ වැඩි කාර්යක්ෂම, පරිසර හිතකාමී සොෆ්ට්වේයාර් නිර්මාණය කරමු.