ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-21, Tuesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

කාල ගණනයේ වැරදි වැලැක්වීමට නිවැරදි ගඩු භාවිතා කිරීමේ මාර්ගය

කාල ගණනයේ වැරදි වැලැක්වීමට නිවැරදි ගඩු භාවිතා කිරීමේ මාර්ගය

වැඩ කරන JavaScript කේත වලදී කාලය මැනීම සඳහා බොහෝ විට Date.now() භාවිතා කරයි. එය සරල, පහසු, නමුත් සමහර අවස්ථාවලදී එය අපේක්ෂිතව නොහොත් අසාර්ථක ප්‍රතිඵලයක් දෙනවා – නegative duration.

උදාහරණයක් ලෙස, සේවා ඉල්ලීමක් 10:00:00.900 ට ආරම්භ විය. 200 ms පසු සම්පූර්ණ වුනත්, ලොග් එකේ -800 ms ලෙස පෙන්වයි. මෙය කාලය මැදින් යන්ත්‍රයක් තම ගඩු සැකසීමෙන් පසු, Date.now() දෙවරක් ඇමතීම අතරතුර ගඩුව අඩු වීම හේතුවෙනි. එම නිසා කාලය ගණනය කිරීමේ කේතය, සාමාන්‍ය ගඩුවකින් (wall clock) පිරික්සුම් කරන ස්ටොප්වොච් එකක් වගේම ක්‍රියා කරයි.

මෙවැනි වැරදි සිදුවීම සමාජීය පද්ධති වලට අධික බලපෑම් ඇති කරයි. 2017 ජනවාරි 1 වනදා, ලීප් සෙක්‍රන්ඩ් එකේ Cloudflare RRDNS සේවාවට අතුරුදන් වූ negative duration එකක් DNS ප්‍රතිචාර ගණනාවකට panic සෘජුවම හේතු විය. එම නිසා ලොක්කන් 0.2% DNS විමසුම් හා 1% HTTP ඉල්ලීම් පවා අසාර්ථක වුණා. මෙම අවස්ථාව මත Go භාෂාවේ time.Now() දැන් මොනොටොනික් කොටස සමඟ එහි ගුණාංගය වැඩිදියුණු කර ඇත.

කාල ගණනයේ වැරදි වැලැක්වීමට දෙවර්ග ගඩු තේරුම් ගැනීම අත්‍යවශ්‍යයි:

  • Wall Clock (Date.now, new Date) – සිවිල් කාලය, epoch එකක් ඇත, නමුත් සමහර වෙලාවට අඩු වීමක් (backward jump) සිදුවේ.
  • Monotonic Clock (performance.now) – අරඹුම් ස්ථානයක් ඇති, පසුගිය මොහොතේ අගය කිසිදාත් අඩු නොවන, එබැවින් කාල අංශය මැනීමට ඉතා සුදුසු.

Linux පද්ධතියේ CLOCK_REALTIME (wall) සහ CLOCK_MONOTONIC (monotonic) වැනි ගඩු වර්ග තිබේ. මොනොටොනික් ගඩුව සකස් කළ නොහැකි බැවින් එය කාලය පසුබැසීමක් නොදක්වයි; නමුත් එහි වේගය (frequency) සෙරෙව් කරයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තාක්ෂණික ශිෂ්‍යයන්, සංවර්ධකයන් සහ ව්‍යාපාරිකයන්ට මෙම කරුණාත්මක දැනුම ප්‍රයෝජනවත් වේ:

  • විශ්ව විද්‍යාල සහ පුහුණු පාඨමාලාවලදී performance.now() භාවිතය උගන්වීම, අනාගත මෘදුකාංග ගුණාත්මකභාවය වැඩිදියුණු කරයි.
  • දේශීය SaaS, fintech හා e‑commerce සමාගම්වලට වැරදි කාල ගණනය නිසා සිදුවන ගැටළු (උදා: ගනුදෙනු කාලය, API timeout) අඩු කරයි.
  • ලෝක තාක්ෂණ ප්‍රවණතාවයන්ට සමගාමීව, ශ්‍රී ලංකාවේ දත්ත මධ්‍යස්ථානයන් (data centers) සහ cloud සේවා සපයන්නන්ට නිවැරදි මොනොටොනික් කාලය භාවිතා කිරීමේ අවශ්‍යතාවය තේරුම්ගත හැක.

ඉදිරියට, කාල ගණනයේ වැරදි වැලැක්වීම සඳහා performance.now() හෝ වෙනත් මොනොටොනික් API භාවිතා කිරීම අත්‍යවශ්‍යයි. එවිට ඔබේ යෙදුම් ස්ථාවර, නිරවද්‍ය හා විශ්වාසනීය වේ.

අදම ඔබේ කේතයෙහි කාල මිනුම් යන්ත්‍රය පරීක්ෂා කර, නිවැරදි ගඩු තේරීමෙන් අනාගත ගැටළු වලින් මිදෙන්න.

💡 ඔබේ කේතයේ කාල මිනුම් දැන්ම නිවැරදි කරගන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#කාලගණනය #JavaScript #Performance #Linux #Developers