এটি প্রতিটি এনইটি বুকের মতো মূল্য প্রকারের তুলনায় রেফারেন্স প্রকারের বিষয়ে আলোচনা করে এবং এটিকে (প্রায়শই ভুলভাবে) যেখানে প্রতিটি প্রকারটি সংরক্ষণ করা হয় - সেখানে হিপ বা স্ট্যাকের বিন্দুতে পরিণত করে। সাধারণত এটি প্রথম কয়েকটি অধ্যায়গুলিতে থাকে এবং কিছু গুরুত্বপূর্ণ বিষয় হিসাবে উপস্থাপিত হয়।
আমি পুরোপুরি একমত; আমি সব সময় এটি দেখতে।
NET বই কেন স্ট্যাক বনাম হিপ মেমরি বরাদ্দ সম্পর্কে কথা বলে?
কারণগুলির একটি অংশ হ'ল কারণ অনেকে সি বা সি ++ ব্যাকগ্রাউন্ড থেকে সি # (বা অন্যান্য। নেট ভাষা) এ এসেছিলেন। যেহেতু এই ভাষাগুলি আপনার জন্য স্টোরেজ আজীবন সম্পর্কিত নিয়মগুলি কার্যকর করে না, তাই আপনাকে সেগুলি বিধিগুলি জানার প্রয়োজন এবং সেগুলি অনুসরণ করার জন্য আপনার প্রোগ্রামটি সাবধানতার সাথে প্রয়োগ করা প্রয়োজন।
এখন, এই নিয়মগুলি জানার এবং সেগুলিতে তাদের অনুসরণ করার দরকার নেই যে আপনি "গাদা" এবং "স্ট্যাক" বোঝেন। আপনি যদি ডেটা স্ট্রাকচারগুলি কীভাবে কাজ করে তা যদি বুঝতে না পারেন তবে নিয়মগুলি বোঝা এবং অনুসরণ করা প্রায়শই সহজ।
একটি শিক্ষানবিশ বই লেখার সময় কোনও লেখকের পক্ষে ধারণাগুলি একইভাবে যে সেগুলি শিখেছিল সেগুলি ব্যাখ্যা করা স্বাভাবিক । এটি অগত্যা অর্ডারটি নয় যা ব্যবহারকারীর জন্য অর্থবোধ করে। আমি সম্প্রতি স্কট ডরম্যানের সি # 4 শিক্ষাবর্ষের বইয়ের জন্য প্রযুক্তিগত সম্পাদক ছিলাম এবং এটি সম্পর্কে আমি যে জিনিসগুলি পছন্দ করেছি তার মধ্যে একটি ছিল যে স্মৃতি ম্যানেজমেন্টের ক্ষেত্রে বেশ উন্নততর বিষয়গুলি কী তা শুরু করার পরিবর্তে স্কট বিষয়গুলির জন্য একটি দুর্দান্ত বুদ্ধিমান ক্রম বেছে নিয়েছিল।
এর আর একটি অংশ হ'ল এমএসডিএন ডকুমেন্টেশনের কয়েকটি পৃষ্ঠা স্টোরেজ বিবেচনার উপর জোর দেয়। বিশেষত পুরানো এমএসডিএন ডকুমেন্টেশন যা এখনও প্রথম দিনগুলি থেকে প্রায় স্থির থাকে। এই ডকুমেন্টেশনের বেশিরভাগটিতে সূক্ষ্ম ত্রুটি রয়েছে যা কখনই উত্সাহিত হয়নি, এবং আপনাকে মনে রাখতে হবে যে এটি ইতিহাসের নির্দিষ্ট সময়ে এবং নির্দিষ্ট দর্শকদের জন্য লেখা হয়েছিল।
স্ট্যাক বনাম হিপ এমনকি কেন (নবীনতর)। নেট বিকাশকারীদের কাছে গুরুত্বপূর্ণ?
আমার মতে, এটা হয় না। যা বোঝার চেয়ে বেশি গুরুত্বপূর্ণ তা হল স্টাফগুলি:
- একটি রেফারেন্স টাইপ এবং একটি মান ধরণের মধ্যে কপির শব্দার্থবিজ্ঞানের মধ্যে পার্থক্য কী?
- "রেফ ইন্ট এক্স" প্যারামিটার কীভাবে আচরণ করে?
- মানের প্রকারগুলি কেন অপরিবর্তনীয়?
ইত্যাদি।
আপনি জিনিস বরাদ্দ এবং এটি ঠিক কাজ করে?
এটাই আদর্শ।
এখন, এমন পরিস্থিতি রয়েছে যার মধ্যে এটি গুরুত্বপূর্ণ। আবর্জনা সংগ্রহ দুর্দান্ত এবং তুলনামূলকভাবে সস্তা, তবে এটি নিখরচায় নয়। চারপাশে ছোট কাঠামো অনুলিপি করা তুলনামূলকভাবে সস্তা, তবে এটি নিখরচায় নয়। বাস্তবসম্মত পারফরম্যান্সের দৃশ্যাবলী রয়েছে যাতে আপনাকে অতিরিক্ত অনুলিপি করার ব্যয়ের তুলনায় সংগ্রহের চাপের ব্যালেন্সকে ভারসাম্য করতে হয়। এই ক্ষেত্রে সমস্ত প্রাসঙ্গিক মেমরির আকার, অবস্থান এবং প্রকৃত জীবনকাল সম্পর্কে দৃ strong় ধারণা পাওয়া খুব সহায়ক is
একইভাবে, বাস্তববাদী আন্তঃআলাপের পরিস্থিতি রয়েছে যাতে স্ট্যাকের মধ্যে কী রয়েছে এবং গাদাতে কী রয়েছে এবং আবর্জনা সংগ্রহকারী কী ঘুরে বেড়াতে পারে তা জানা দরকার। এজন্য সি # এর "ফিক্সড", "স্ট্যাক্যালোক" ইত্যাদি বৈশিষ্ট্য রয়েছে।
তবে সেগুলি সমস্ত উন্নত পরিস্থিতি। আদর্শভাবে একজন শিক্ষানবিস প্রোগ্রামারকে এই স্টাফগুলির কোনওোটাই সম্পর্কে চিন্তা করতে হবে না।