DEV Community

Raihanul Islam Sharif
Raihanul Islam Sharif

Posted on

Go Internal Memory Bangla


আজকে আমি শেয়ার করছি Go (Golang) প্রোগ্রামের ভেতরে মেমোরি কিভাবে কাজ করে সেটা নিয়ে আমার শেখা কিছু জিনিস।
প্রথমে মনে হতে পারে এটা শুধু "টেকনিক্যাল" ব্যাপার, কিন্তু আসলে মেমোরি কিভাবে ম্যানেজ হয় সেটা বুঝলে কোড অপটিমাইজ করা আর বাগ ফিক্স করা অনেক সহজ হয়ে যায়। 🙂

⚡ Go Program এর Phase
Go প্রোগ্রাম রান হওয়ার আগে/পরে সাধারণত দুইটা ধাপে কাজ হয়
1.Compilation Phase → আমাদের কোড মেশিন readable হয়ে যায়।
2.Execution Phase → আসল প্রোগ্রাম চালু হয় এবং memory allocate হয়।

🧠 Internal Memory Layout
Go প্রোগ্রাম রান করার সময় মেমোরি সাধারণত ৪ ভাগে ভাগ হয়ে যায় –

1️⃣ Code Segment
এখানে প্রোগ্রামের সব function আর compiled instructions store থাকে।
উদাহরণ: main(), square() – এগুলো code segment এ থাকে।
2️⃣ Data Segment
এখানে global আর static variables store হয়।
যেমন:
var version string = "1.0.0"
এই version data segment এ থাকবে।
3️⃣ Stack

যখন কোনো function কল হয় তখন Stack Frame তৈরি হয়।
লোকাল ভ্যারিয়েবল, parameter, return address সব এখানে অস্থায়ীভাবে থাকে।
কাজ শেষ হয়ে গেলে সেই stack frame pop হয়ে যায় (LIFO – Last In First Out)

4️⃣ Heap

Heap memory গুলো Garbage Collector (GC) ম্যানেজ করে, মানে ম্যানুয়ালি free করতে হয় না।

📌 Summary (Easy Way to Remember)
Code Segment → function definitions
Data Segment → global/static variables
Stack → temporary data (function call এর সময়)
Heap → dynamically allocated data (GC দ্বারা free হয়)

Top comments (0)