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

Dart භාෂාවෙන් ලක්ෂයක් වඩා වැඩි පේළි .xlsx ගොනුවක් මතක අවශ්‍යතාව නොමැතිව ලිවීමේ නව ක්‍රමය

Dart භාෂාවෙන් ලක්ෂයක් වඩා වැඩි පේළි .xlsx ගොනුවක් මතක අවශ්‍යතාව නොමැතිව ලිවීමේ නව ක්‍රමය

Dart භාෂාව භාවිතා කරමින් Excel ගොනුවක් (xlsx) නිර්මාණය කරන වෙබ් සේවා කිහිපයක් තිබේ. ඒ අතර, මතකය අවසන් වීමේ ගැටළුවක් නිසා බොහෝ සංවර්ධකයින්ට ත්‍රාසයක් විය. නවතම පර්යේෂණයක් පෙන්වන්නේ xlsxwriter නමැති FFI (Foreign Function Interface) ලේයරය භාවිතා කරන්නේ නම්, ලක්ෂ ගණනක් පේළි ඇති ගොනුවක්ත් මතක බර නොවී ලියන්න පුළුවන් බවයි.

පෙර, Dart සඳහා ජනප්‍රිය excel පැකේජය පූර්ණ වශයෙන් මතකයේ වර්කබුක් එකක් සකස් කර, අවසානයේ එය බයිට්ස් වශයෙන් ලබා දුන්හ. 50 පේළි වැනි කුඩා වාර්තා සඳහා එය ප්‍රශ්න නැතිව ක්‍රියා කළද, 400,000 පේළි අඩංගු ගනුදෙනුවක් හමුවේ Docker container එක OOM (Out Of Memory) වී ක්‍රියාව නවතා දුන්නා.

ඉන්පසු, සංවර්ධකයෙක් xlsxwriter නමැති FFI රැප්පර් එකක් හඳුන්වා දුන්නා. මෙය libxlsxwriter C පුස්තකාලය මත පදනම් වූ අතර, XML සහ ZIP සැකසීම C මට්ටමේ සිදු කරයි. Dart පැකේජය එහි API එකට සමීපව, වර්ක්බුක් එකක් විවෘත කර, ශීට් එකක් එක් කර, සෙල් එකකට දත්ත ලියන ක්‍රමයක් පමණක් සපයයි.

සෑම පේළියක්ම ලියන විටම තාවකාලික ගොනුවකට flush කරමින්, මතකයේ පවත්නා දත්ත එක පේළියක් පමණක් වේ. මේ නිසා 100,000 පේළි සඳහා xlsxwriter මතක භාවිතය 191 MiB පමණයි, එහෙත් එකම ගොනුවට excel_community (excel පැකේජයේ රක්ෂිත ෆෝර්ක්) භාවිතා කළහොත් 614 MiB පමණ පවතින අතර, අසම්භව excel (නවීන නොවන) 1,778 MiB පමණට පත් වේ.

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

ශ්‍රී ලංකාවේ විශ්වවිද්‍යාල සිසුන්, තාක්ෂණික පුහුණුකරුවන්, සහ ස්ථානීය ව්‍යාපාරිකයින්ට මේ නව ක්‍රමය විශාල වාසියක් ලබා දෙයි.

  • සිසුන් – වැඩි පේළි ගණනක් සමඟ දත්ත විශ්ලේෂණ ව්‍යාපෘති හදන විට, මතක අවශ්‍යතාවය ගැන බිය නොවෙයි.
  • ඩිවෙලොපර් – Server‑side API එකකින් ලක්ෂ ගණනක් පේළි Excel ගොනුවක් සකස් කර, Docker/Kubernetes පරිසරයේ OOM ගැටළුවක් නැතිව භාවිතා කළ හැක.
  • ව්‍යාපාරික – විශාල වාර්තා (උදාහරණයක් ලෙස, ගබඩා, මූල්‍ය) ක්ෂණිකව නිර්මාණය කර, පාරිභෝගිකයන්ට වේගවත් සේවාවක් ලබා දිය හැක.

ඉන්පසු, constant‑memory mode සක්‍රිය කර, පේළි ඉහළ සිට පහළට ලියන විටම තාවකාලික ගොනුවකට flush කිරීමේ හැකියාව ඇති නිසා, මතකයේ පීක් එක ස්ථාවර 191 MiB පමණට පවතින අතර, ලක්ෂ ගණනක් පේළි සමඟද මෙය ස්ථාවර වේ.

මෙම නව පද්ධතියේ ප්‍රයෝජන ඉතා පැහැදිළි ය. Dart සංවර්ධකයින්ට මතක භාරය ගැන අධික සැලකිල්ලක් නොගෙන, විශාල Excel වාර්තා ඉක්මනින් නිර්මාණය කළ හැකිය. ඒත්, පේළි ඉහළ සිට පහළට ලියන්න බැරි නම්, මෙම ක්‍රමය අනුකූල නොවේ.

ඉදිරියේදී, Dart‑කේතය හා libxlsxwriter එකතුවේ වැඩි දියුණු කිරීමෙන්, ශ්‍රී ලංකාවේ තාක්ෂණික ඉංජිනේරු පරිසරය තවත් ශක්තිමත් වනු ඇත.

💡 ඔබේ ව්‍යාපාරයට මතක-සුරක්ෂිත Excel වාර්තා දැන්ම ඇරඹන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Dart #xlsx #Memory #Export #Flutter #SriLanka