আমরা আমাদের প্রকল্পে রেড গেট সফ্টওয়্যার দ্বারা অ্যান্টস প্রোফাইলার প্রো ব্যবহার করেছি । এটি নেট। ভাষা ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য সত্যই ভাল কাজ করে।
আমরা দেখতে পেয়েছি যে .NET আবর্জনা সংগ্রাহক এটি মেমোরি অবজেক্টগুলি পরিষ্কার করার ক্ষেত্রে খুব "নিরাপদ" (যেমনটি হওয়া উচিত)। এটা ঠিক, কারণ আমরা বস্তুর চারপাশে রাখা হবে পারে এটি ভবিষ্যতে একদা ব্যবহার করা। এর অর্থ হ'ল আমাদের স্মৃতিতে যে পরিমাণ অবজেক্ট তৈরি করেছে সে সম্পর্কে আমাদের আরও যত্নবান হওয়া দরকার। শেষ পর্যন্ত, মেমরির ওভারহেড হ্রাস করতে এবং কর্মক্ষমতা বাড়ানোর জন্য আমরা আমাদের সমস্ত ডেটা অবজেক্টগুলিকে "ইনফ্লেট অন-ডিমান্ড" (কোনও ক্ষেত্রের অনুরোধের ঠিক আগে) তে রূপান্তরিত করেছি।
সম্পাদনা: "চাহিদা বাড়ানো" বলতে আমি কী বোঝাতে চাইছি তার আরও ব্যাখ্যা এখানে। আমাদের ডাটাবেসের আমাদের অবজেক্টের মডেলটিতে আমরা শিশু অবজেক্ট (গুলি) এক্সপোজ করতে পিতামাতার বস্তুর বৈশিষ্ট্যগুলি ব্যবহার করি। উদাহরণস্বরূপ যদি আমাদের কাছে এমন কিছু রেকর্ড থাকে যা একের সাথে একের ভিত্তিতে কিছু অন্যান্য "বিশদ" বা "অনুসন্ধান" রেকর্ডকে রেফারেন্স করে থাকে তবে আমরা এটিকে এভাবে গঠন করতাম:
class ParentObject
Private mRelatedObject as New CRelatedObject
public Readonly property RelatedObject() as CRelatedObject
get
mRelatedObject.getWithID(RelatedObjectID)
return mRelatedObject
end get
end property
End class
আমরা দেখতে পেয়েছি যে যখন মেমরিতে প্রচুর রেকর্ড থাকে তখন উপরের সিস্টেমটি কিছু বাস্তব মেমরি এবং পারফরম্যান্স সমস্যা তৈরি করে। সুতরাং আমরা এমন একটি সিস্টেমে স্যুইচ করেছি যেখানে কেবল অনুরোধ করা হলে অবজেক্টগুলিকে স্ফীত করা হত এবং যখন প্রয়োজন হয় তখনই ডাটাবেস কল করা হত:
class ParentObject
Private mRelatedObject as CRelatedObject
Public ReadOnly Property RelatedObject() as CRelatedObject
Get
If mRelatedObject is Nothing
mRelatedObject = New CRelatedObject
End If
If mRelatedObject.isEmptyObject
mRelatedObject.getWithID(RelatedObjectID)
End If
return mRelatedObject
end get
end Property
end class
এটি আরও কার্যকর হিসাবে প্রমাণিত হয়েছিল কারণ অবজেক্টগুলি প্রয়োজন না হওয়া অবধি স্মৃতি থেকে দূরে রাখা হয়েছিল (গেট পদ্ধতিটি অ্যাক্সেস করা হয়েছিল)। এটি ডাটাবেস হিটকে সীমাবদ্ধ করতে এবং মেমরির জায়গাগুলিতে বিশাল লাভের একটি দুর্দান্ত কর্মক্ষমতা প্রদান করেছে boo