বেশিরভাগ ক্ষেত্রে এসও তে আমি নিজেকে কোডের ছোট ছোট অংশগুলি দেখতে পাচ্ছি কোনটি কার্যকর করা সবচেয়ে দ্রুত see
বেশিরভাগ সময় আমি এমন মন্তব্য দেখতে পাই যে বেঞ্চমার্কিং কোডটি জিটিং বা আবর্জনা সংগ্রহকারীকে বিবেচনা করে না।
আমার নিম্নোক্ত সাধারণ বেঞ্চমার্কিং কার্য রয়েছে যা আমি ধীরে ধীরে বিবর্তিত হয়েছি:
static void Profile(string description, int iterations, Action func) {
// warm up
func();
// clean up
GC.Collect();
var watch = new Stopwatch();
watch.Start();
for (int i = 0; i < iterations; i++) {
func();
}
watch.Stop();
Console.Write(description);
Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds);
}
ব্যবহার:
Profile("a descriptions", how_many_iterations_to_run, () =>
{
// ... code being profiled
});
এই বাস্তবায়নের কোনও ত্রুটি আছে কি? জেড পুনরাবৃত্তির ওপরে বাস্তবায়নের চেয়ে এক্স এক্সপ্লোরেশন এক্স দ্রুততর তা দেখাতে কি যথেষ্ট ভাল? আপনি যে কোনও উপায়ে উন্নতি করতে পারেন তা ভাবতে পারেন?
সম্পাদনা সম্পাদনা এটি অত্যন্ত পরিষ্কার যে একটি সময় ভিত্তিক পদ্ধতির (পুনরাবৃত্তির বিপরীতে) পছন্দ করা হয়, কারও কি এমন কোনও বাস্তবায়ন রয়েছে যেখানে সময় চেকগুলি কার্য সম্পাদন করে না?