ব্যক্তিগত অভিজ্ঞতা থেকে, System.Diagnostics.Stopwatch
ক্লাসটি কোনও পদ্ধতির কার্যকরকরণের সময়টি পরিমাপ করতে ব্যবহার করা যেতে পারে, তবে, সতর্কতা : এটি সম্পূর্ণ সঠিক নয়!
নিম্নলিখিত উদাহরণ বিবেচনা করুন:
Stopwatch sw;
for(int index = 0; index < 10; index++)
{
sw = Stopwatch.StartNew();
DoSomething();
Console.WriteLine(sw.ElapsedMilliseconds);
}
sw.Stop();
উদাহরণ ফলাফল
132ms
4ms
3ms
3ms
2ms
3ms
34ms
2ms
1ms
1ms
এখন আপনি ভাবছেন; "ভাল কেন এটি প্রথমবারের মতো 132 মিমি নিয়েছে, এবং বাকি সময়গুলিতে উল্লেখযোগ্যভাবে কম?"
উত্তরটি হ'ল Stopwatch
জাইটিংসের মতো .NET- এ "পটভূমি শব্দ" ক্রিয়াকলাপের ক্ষতিপূরণ দেয় না। অতএব আপনি যখন প্রথম নিজের পদ্ধতিটি চালান, নেট জাইটি এটি প্রথমে। এটি করার জন্য সময়টি কার্যকর করার সময় যুক্ত হয়। একইভাবে, অন্যান্য কারণগুলিও মৃত্যুদন্ড কার্যকর করার সময়কে আলাদা করতে পারে।
আপনার যা সত্যই নিখুঁত নির্ভুলতার সন্ধান করা উচিত তা হ'ল পারফরম্যান্স প্রোফাইলিং !
নিম্নলিখিতটি একবার দেখুন:
রেডগেট এএনটিএস পারফরম্যান্স প্রোফাইলার একটি বাণিজ্যিক পণ্য, তবে খুব সঠিক ফলাফল দেয়। - নেট অ্যাপ্লিকেশন সহ আপনার অ্যাপ্লিকেশনগুলির পারফরম্যান্সকে বুস্ট করুন
এখানে প্রোফাইলিং সম্পর্কিত একটি স্ট্যাকওভারফ্লো নিবন্ধ: - কিছু ভাল। নেট প্রোফাইলার কি?
স্টপওয়াচ ব্যবহার করে পারফরম্যান্স প্রোফাইলিংয়ের উপরে আমি একটি নিবন্ধও লিখেছি যা আপনি দেখতে চাইতে পারেন - .NET এ পারফরম্যান্স প্রোফাইলিং
ThreadPool.QueueUserWorkItem(delegate { CopyFiles(folder, dest); });
অভ্যন্তর রয়েছে তবে স্টপওয়াচ সবকিছু শেষ হওয়ার আগেই বন্ধ হয়ে যায়।