আমি দেখতে পেয়েছি যে সাধারণ ঘড়ি (), সবাই এখানে সুপারিশ করে, কোনও কারণে রান থেকে চালানো থেকে বঞ্চিতভাবে বিচ্যুত হয় এমনকি স্থির কোডের জন্য কোনও পার্শ্ব প্রতিক্রিয়া ছাড়াই, স্ক্রিনে আঁকানো বা ফাইল পড়ার মতো। এটি হতে পারে কারণ সিপিইউ বিদ্যুত ব্যবহারের পদ্ধতিগুলি পরিবর্তন করে, ওএস বিভিন্ন অগ্রাধিকার দেয় ইত্যাদি ইত্যাদি ...
সুতরাং প্রতিবার ঘড়ির সাথে বিশ্বস্ততার সাথে একই ফলাফল পাওয়ার একমাত্র উপায় হ'ল একাধিক বার লুপে (কয়েক মিনিটের জন্য) পরিমাপ করা কোডটি চালনা করা, সংযোজকটিকে এটির অপ্টিমাইজ করা থেকে বিরত রাখার জন্য সতর্কতা অবলম্বন করা: আধুনিক সংকলকরা কোডটিকে পূর্ববর্তী করতে পারে কোনও লুপে চলমান পার্শ্ব প্রতিক্রিয়া ছাড়াই এবং এটিকে লুপের বাইরে নিয়ে যান ie যেমন প্রতিটি পুনরুক্তির জন্য এলোমেলো ইনপুট ব্যবহার করা।
পর্যাপ্ত নমুনাগুলি একটি অ্যারেতে সংগ্রহ করার পরে, এক ধরণের যা অ্যারে হয় এবং মাঝারি উপাদানটিকে মধ্যস্থ বলে। মিডিয়ান গড়ের চেয়ে ভাল, কারণ এটি চরম বিচ্যুতিগুলি দূরে ফেলে দেয়, যেমন অ্যান্টিভাইরাস বলে যে সমস্ত সিপিইউ গ্রহণ করে বা ওএস কিছু আপডেট করে।
সি / সি ++ কোডের নির্বাহের পারফরম্যান্স পরিমাপের জন্য একটি সাধারণ ইউটিলিটি, মিডিয়ানের কাছাকাছি মানগুলির গড়: https://github.com/saniv/gauge
আমি নিজেও কোড পরিমাপের আরও শক্তিশালী এবং দ্রুততর উপায় খুঁজছি। কেউ সম্ভবত কোনও ওএস ছাড়াই বেয়ার ধাতব উপর নিয়ন্ত্রিত অবস্থায় কোড চালনার চেষ্টা করতে পারে তবে এটি অবাস্তব ফলাফল দেয় কারণ বাস্তবে ওএস জড়িত থাকে।
x86 এর এই হার্ডওয়্যার পারফরম্যান্স কাউন্টারগুলি রয়েছে, যার মধ্যে মৃত্যুদন্ড কার্যকর করার নির্দেশাবলীর প্রকৃত সংখ্যা অন্তর্ভুক্ত রয়েছে তবে তারা ওএস সহায়তা ছাড়াই অ্যাক্সেস করা জটিল, ব্যাখ্যা করার পক্ষে এবং তাদের নিজস্ব সমস্যা রয়েছে ( http://archive.gamedev.net/archive/references/articles /article213.html )। তবুও তারা বোতল ঘাড়ের প্রকৃতি (ডেটা অ্যাক্সেস বা সেই ডেটার উপর প্রকৃত গণনা) অনুসন্ধান করতে সহায়তা করতে পারে।