কোনও প্রোগ্রামে সংস্থান (মেমরি সহ) পরিচালনার প্রাথমিক ধারণাটি যাই হোক না কেন কৌশলই হ'ল অ্যাক্সেসযোগ্য "অবজেক্টস" এর সাথে আবদ্ধ সংস্থানগুলি পুনরুদ্ধার করা যায়। মেমরির বাইরে, এই সংস্থানগুলি মুটেক্স লক, ফাইল হ্যান্ডলগুলি, সকেট, ডাটাবেস সংযোগগুলি হতে পারে ...
কোনও আবর্জনা সংগ্রাহকযুক্ত ভাষাগুলি অব্যবহৃত অবজেক্টগুলি সন্ধানের জন্য পর্যায়ক্রমে মেমোরিটি স্ক্যান করে (এক উপায় বা অন্য), তাদের সাথে যুক্ত সংস্থানগুলি ছেড়ে দেয় এবং অবশেষে objects অবজেক্টগুলির দ্বারা ব্যবহৃত স্মৃতি ছেড়ে দেয়।
মরিচাটির একটি জিসি নেই, এটি কীভাবে পরিচালনা করবে?
মরিচের মালিকানা রয়েছে। একটি এফাইন টাইপ সিস্টেম ব্যবহার করে , এটি সনাক্ত করে যে কোন চলকটি এখনও কোনও বস্তুর উপরে ধারণ করে এবং যখন এইরকম চলক সুযোগের বাইরে চলে যায়, তখন তার ডেস্ট্রাক্টরকে ডাকে। আপনি এফাইন টাইপ সিস্টেমটি কার্যকরভাবে দেখতে পাচ্ছেন:
fn main() {
let s: String = "Hello, World!".into();
let t = s;
println!("{}", s);
}
উৎপাদনের:
<anon>:4:24: 4:25 error: use of moved value: `s` [E0382]
<anon>:4 println!("{}", s);
<anon>:3:13: 3:14 note: `s` moved here because it has type `collections::string::String`, which is moved by default
<anon>:3 let t = s;
^
যা নিখুঁতভাবে চিত্রিত করে যে সময়ে যে কোনও সময়ে, ভাষা পর্যায়ে, মালিকানা ট্র্যাক করা হয়।
এই মালিকানাটি পুনরাবৃত্তভাবে কাজ করে: আপনার যদি একটি Vec<String>(যেমন, স্ট্রিংগুলির একটি গতিশীল অ্যারে) থাকে, তবে প্রতিটি Stringস্বত্বের মালিকানাধীন Vecযা নিজেই একটি ভেরিয়েবল বা অন্য কোনও বস্তুর মালিকানাধীন, ইত্যাদি ... সুতরাং, যখন কোনও ভেরিয়েবল সুযোগের বাইরে চলে যায়, এমনকি এটি অপ্রত্যক্ষভাবে এমনকি এটি অনুষ্ঠিত সমস্ত সম্পদকে পুনরাবৃত্তভাবে মুক্ত করে। এর ক্ষেত্রে এর Vec<String>অর্থ:
- প্রতিটি সম্পর্কিত মেমরি বাফার মুক্তি
String
Vecনিজের সাথে সম্পর্কিত মেমরি বাফার প্রকাশ করা
সুতরাং, মালিকানা ট্র্যাকিংয়ের জন্য ধন্যবাদ, সমস্ত প্রোগ্রামের সামগ্রীর আজীবন কঠোরভাবে একটি (বা বেশ কয়েকটি) ফাংশন ভেরিয়েবলের সাথে আবদ্ধ থাকে, যা শেষ পর্যন্ত সুযোগের বাইরে চলে যাবে (যখন তারা অবশেষে ব্লকটি শেষ করে)।
দ্রষ্টব্য: এটি কিছুটা আশাবাদী, রেফারেন্স গণনা ব্যবহার করে ( Rcবা Arc) রেফারেন্সের চক্র গঠন করা এবং এভাবে মেমরি ফাঁসের কারণ হতে পারে, সেক্ষেত্রে চক্রের সাথে জড়িত সংস্থানগুলি কখনই প্রকাশিত হতে পারে না।