ڈھیر اور ڈھیر کے مابین فرق
مواد
اسٹیک اور ہیپ میموری کے حصے ہیں جو میموری کو مختص کرنے کی تکنیک میں استعمال ہوتے ہیں۔ اسٹیک اور ڈھیر کے مابین بنیادی فرق یہ ہے کہ اسٹیک میں میموری کی لکیری اور ترتیب وار مختص شامل ہوتی ہے جو مستحکم میموری مختص میں استعمال ہوتی ہے جبکہ ڈھیر اسٹوریج ایریا کے تالاب کے طور پر کام کرتی ہے جس نے میموری کو تصادفی طور پر مختص کیا (متحرک میموری مختص)۔
اسپیڈ ایک اہم پیرامیٹر ہے جو اسٹیک اور ڈھیر کو ممتاز کرتا ہے۔ اسٹیک ڈھیر سے نمایاں طور پر تیز ہے۔
- موازنہ چارٹ
- تعریف
- کلیدی اختلافات
- نتیجہ اخذ کرنا
موازنہ چارٹ
موازنہ کی بنیاد | اسٹیک | ڈھیر |
---|---|---|
بنیادی | میموری پہلے (فیشن) میں مختص کی گئی تھی۔ | میموری کو بے ترتیب ترتیب میں مختص کیا جاتا ہے۔ |
مختص اور تعطل | خودکار | دستی |
لاگت | کم | مزید |
عمل آوری | سخت | آسان |
طلب کرنا | O (N) | O (1) |
مسئلہ | یادداشت کی قلت | میموری ٹکڑے |
حوالہ کا مقام | عمدہ | کافی ہے |
لچک | فکسڈ سائز اور لچکدار نہیں ہے | نیا سائز ممکن ہے |
رسائی کا وقت | تیز | آہستہ |
اسٹیک کی تعریف
اسٹیک مختص عمل کو دباؤ اور پاپ آپریشن کی مدد سے میموری کو تفویض کرنے کے لئے (پہلے آخری میں آخری) حکمت عملی پر عمل کرتا ہے۔ میموری میں ہر بلاک طے شدہ سائز کا ہوتا ہے جسے بڑھا یا معاہدہ نہیں کیا جاسکتا۔ اسٹیک میں آخری اندراج کسی بھی وقت قابل رسا ہے۔ اسٹیک ایک مشغول میموری استعمال کرتا ہے جہاں اسٹیک بیس کے نام سے ایک پوائنٹر اسٹیک کی پہلی اندراج کی طرف اشارہ کرتا ہے اور اسٹیک کے اوپری حصے کے نام سے ایک اور پوائنٹر اسٹیک کے آخری اندراج کی طرف اشارہ کرتا ہے۔
اسٹیک فنکشن کالوں کی بھی حمایت کرتا ہے۔ فنکشن کال اسٹیک اندراجات کا ایک مجموعہ رکھ سکتی ہے ، جسے اسٹیک فریم کے نام سے جانا جاتا ہے۔ اسٹیک فریم کا دوسرا نام کمپائلر کی شکل میں ایکٹیویشن ریکارڈ ہے کیونکہ یہ پروگرام کی تالیف کے وقت استعمال ہونے والے ڈیٹا کو محفوظ کرتا ہے۔ جب بھی کسی فنکشن کو اسٹیک فریم کہتے ہیں اسٹیک میں ڈال دیا جاتا ہے۔
اسٹیک فریم میں یا تو ایڈریسس یا فنکشن کے پیرامیٹر اور ویلن ایڈریس پر مشتمل ہوتا ہے جو اس بات کی نشاندہی کرتا ہے کہ فنکشن کی تعمیل مکمل کرنے کے بعد کنٹرول کو کہاں لوٹنا چاہئے۔
ڈھیر کی تعریف
ڈھیروں سے مختص کرنے کا کوئی یقینی طریقہ کار پر عمل نہیں ہوتا ہے۔ بلکہ یہ بے ترتیب تفویض اور میموری کو الگ الگ کرنے کی اجازت دیتا ہے۔ ایک عمل کے ذریعہ ایک اسائنمنٹ کی درخواست ڈھیر میں مختص شدہ میموری ایریا کو ایک پوائنٹر کے ساتھ واپس دیتی ہے ، اور اس عمل کو پوائنٹر کے ذریعے مختص میموری کے علاقے تک رسائی حاصل ہوتی ہے۔
Deallocation dellocation کی درخواست کے ذریعے کیا جاتا ہے ، اس اسٹیک کے مترادف ہے جہاں میموری خود بخود ختم ہوجاتا ہے۔ جب ڈیٹا ڈھانچے تعمیر اور آزاد ہوجاتے ہیں تو ڈھیر میموری کی تقسیم میں سوراخ پیدا کرتی ہے۔ یہ رن ٹائم پر استعمال ہوتا ہے۔
- کسی اسٹیک میں ، یہ مختص اور تعطل CPU کے ذریعہ کیا جاتا ہے اور خود کار طریقے سے ہوتا ہے ، جبکہ ڈھیر میں ، اسے پروگرامر کو دستی طور پر کرنے کی ضرورت ہوتی ہے۔
- ڈھیر فریم ہینڈلنگ اسٹیک فریم ہینڈلنگ سے مہنگا ہے۔
- اسٹیک کا نفاذ پیچیدہ ہے۔ اس کے برخلاف ، ڈھیر کا نفاذ آسان ہے۔
- اسٹیک میں ایک فنکشن کال میں O (N) کا وقت لگتا ہے۔ اس کے برعکس ، یہ ڈھیر میں O (1) وقت لیتا ہے۔
- اسٹیک پر عمل درآمد بنیادی طور پر میموری کی قلت کے مسئلے سے دوچار ہے۔ اس کے برعکس ، ڈھیر کا اہم مسئلہ ٹکڑے ٹکڑے کرنا ہے۔
- اسٹیک فریم تک رسائی ڈھیر سے آسان ہے کیونکہ یہ اسٹیک میموری کے چھوٹے چھوٹے خطے تک ہی محدود ہے اور یہ ہمیشہ کیشے پر جاتا ہے ، لیکن ڈھیر کے فریم پورے میموری میں منتشر ہوجاتے ہیں تاکہ میموری تک رسائی زیادہ کیشے سے محروم ہوسکتی ہے۔
- اسٹیک لچکدار نہیں ہے ، الاٹ شدہ میموری سائز کو تبدیل نہیں کیا جاسکتا ہے۔ دوسری طرف ، ایک ڈھیر لچکدار ہے ، اور الاٹ شدہ میموری کو تبدیل کیا جاسکتا ہے.
- ڈھیر لگانے سے کہیں زیادہ وقت لگتا ہے۔
نتیجہ اخذ کرنا
اسٹیک مختص تیز لیکن پیچیدہ ہے۔ دوسری طرف ، ڈھیر سست ہے ، لیکن اس کا نفاذ اسٹیک کے مقابلے میں آسان ہے۔ ڈھیر اسٹیک سے زیادہ موثر ہے۔