সমস্যাটি হল "যেখানে বেশিরভাগ সময় ব্যয় করা হয়" শব্দগুচ্ছটি।
যদি এর অর্থ যদি "প্রোগ্রামের কাউন্টারটি বেশিরভাগ ক্ষেত্রে পাওয়া যায়" তবে আমি এমন প্রোগ্রামগুলি দেখেছি যেখানে বেশিরভাগ সময় স্ট্রিং-তুলনা, মেমরি-বরাদ্দ, গণিতের গ্রন্থাগারের ফাংশনে ব্যয় করা হত। অন্য কথায়, ফাংশনগুলি যা প্রতিদিনের প্রোগ্রামারটিকে কখনও স্পর্শ করা উচিত নয়।
যদি এর অর্থ হয় "যেখানে প্রোগ্রামার কোডটিতে এমন বিবৃতি কার্যকর করা হয় যা বেশিরভাগ সময় ব্যয় করে" এটি আরও কার্যকর ধারণা।
"কোডটিকে যে সর্বাধিক বলা হয়" এর ধারণার সাথে সমস্যাটি হ'ল এটি যে পরিমাণ সময় নেয় তা হ'ল এটি কতবার বলা হয় এবং কলটিতে প্রতি সময় কত সময় নেয় (ক্যালিজ এবং আই / ও সহ)) যেহেতু এটির সময় লাগে তা বিভিন্ন মাত্রার বিভিন্ন আদেশের পরিবর্তে পরিবর্তিত হতে পারে, কারণ এটির নাম্বারটি যতবার ডাকা হয় তা আপনাকে বোঝায় না যে এটি কতটা সমস্যা। ফাংশন এ 10 বার কল করা যেতে পারে এবং 0.1 সেকেন্ড সময় নিতে পারে, যখন ফাংশন বি 1000 বার বলা হয়ে একটি মাইক্রোসেকেন্ড নিতে পারে take
একটি জিনিস যা আপনাকে কোথায় দেখতে হবে তা বলবে: কোডের একটি লাইন যখনই সময় ব্যয় করে তখন তা স্ট্যাকের মধ্যে থাকে । সুতরাং, উদাহরণস্বরূপ, যদি কোডের একটি লাইন হট স্পট হয়, বা এটি যদি কোনও লাইব্রেরির ফাংশনে কল হয়, বা যদি এটি 30-স্তরের কল ট্রিতে 20 তম কল হয়, যদি তা 20% সময়ের জন্য দায়বদ্ধ থাকে , তবে এটি সময় 20% স্ট্যাকের মধ্যে রয়েছে। স্ট্যাকের এলোমেলো সময়ের নমুনাগুলির প্রতিটি এটির প্রদর্শনের 20% সুযোগ পাবে। আরও কী, যদি আই / ও-এর সময় নমুনাগুলি নেওয়া যায় তবে তারা আপনাকে দেখায় যে I / O এর জন্য কী অ্যাকাউন্ট, যা নষ্ট সিপিইউ চক্রের মতোই বা বেশি অপচয় হতে পারে।
আর এটি কতবার আহ্বান করা হয়েছে তা থেকে সম্পূর্ণ স্বাধীন।