Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में clock() फ़ंक्शन का उपयोग कैसे करें

clock() फ़ंक्शन

यहां हम देखेंगे कि C++ में clock() का उपयोग कैसे करें। यह clock() <time.h> या <ctime> हेडर फाइल में मौजूद है। यहां हम इस clock() फ़ंक्शन का उपयोग करके किसी प्रोसेस का बीता हुआ समय ढूंढेंगे।

बीता हुआ समय गणना करना

बीता हुआ समय प्राप्त करने के लिए, हम टास्क की शुरुआत में clock() का उपयोग करके समय प्राप्त कर सकते हैं, और टास्क के अंत में, फिर मानों को घटाकर अंतर प्राप्त कर सकते हैं। उसके बाद हम अंतर को CLOCKS_PER_SEC (प्रति सेकंड क्लॉक टिक्स की संख्या) से विभाजित करके प्रोसेसर समय प्राप्त करेंगे।

उदाहरण: उपयोगकर्ता इनपुट तक समय मापना

#include <iostream>
#include <ctime>
using namespace std;

void take_enter() {
    cout << "Press enter to stop the counter" << endl;
    while (true) {
        if (getchar())
            break;
    }
}

int main() {
    // take_enter() द्वारा लिया गया समय गणना करें
    clock_t t;
    t = clock();
    cout << "Timer starts\n";
    take_enter();
    cout << "Timer ends \n";
    t = clock() - t;
    
    double time_taken = ((double)t) / CLOCKS_PER_SEC;  // बीता हुआ समय गणना करें
    cout << "The program took " << time_taken << " seconds to execute";
    return 0;
}

आउटपुट

Timer starts
Press enter to stop the counter
Timer ends
The program took 3.546 seconds to execute

महत्वपूर्ण बिंदु

clock() क्या मापता है?

  • CPU समय, वॉल-क्लॉक समय नहीं
  • सभी थ्रेड्स द्वारा उपयोग किया गया कुल CPU समय (POSIX पर)
  • यदि प्रोग्राम I/O या स्लीप पर इंतजार कर रहा है, तो वह समय शामिल **नहीं** होता (आमतौर पर)

प्रकार और स्थिरांक

clock_t clock();           // रिटर्न टाइप: clock_t (आमतौर पर long या long long)
#define CLOCKS_PER_SEC 1000000  // प्रति सेकंड टिक्स (POSIX पर आमतौर पर 1,000,000)

सटीकता विचार

  • रिजॉल्यूशन सिस्टम-निर्भर है (आमतौर पर 1μs से 1ms)
  • बहुत छोटे अंतराल के लिए, std::chrono::high_resolution_clock (C++11) का उपयोग करें
  • clock_t बहुत लंबे रन के लिए ओवरफ्लो हो सकता है

मॉडर्न C++ विकल्प: std::chrono (C++11)

#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
using namespace std::chrono;

int main() {
    auto start = high_resolution_clock::now();
    
    cout << "Timer starts\n";
    this_thread::sleep_for(seconds(2));  // 2 सेकंड सिम्युलेटेड वर्क
    cout << "Timer ends\n";
    
    auto end = high_resolution_clock::now();
    auto duration = duration_cast(end - start);
    
    cout << "Elapsed: " << duration.count() << " ms\n";
    
    // अधिक सटीकता के लिए:
    auto duration_us = duration_cast(end - start);
    cout << "Elapsed: " << duration_us.count() << " μs\n";
    
    return 0;
}

तुलना

विशेषताclock()std::chrono::high_resolution_clock
क्या मापता हैCPU समयवॉल-क्लॉक समय
थ्रेड जागरूकतासभी थ्रेड्स का योगवास्तविक बीता समय
सटीकतामाइक्रोसेकंड (सिस्टम-निर्भर)नैनोसेकंड (हार्डवेयर-निर्भर)
पोर्टेबिलिटीC स्टैंडर्डC++11 स्टैंडर्ड
  1. Excel में IF फंक्शन का उपयोग कैसे करें Excel में IF फंक्शन का उपयोग कैसे करें

    जानने योग्य बातें IF फंक्शन का उपयोग तार्किक परीक्षण करने के लिए किया जाता है, यानी कोई चीज सही है या नहीं। IF फंक्शन सिंटैक्स और तर्क हैं =IF(logical_test, value_if_true, [value_if_false])। उदाहरण के लिए =IFA3,Bigger,Smaller)। यह लेख Excel के सभी संस्करणों में तार्किक परीक्षण करने के लिए IF फंक्

  1. Excel में PI फंक्शन का उपयोग कैसे करें Excel में PI फंक्शन का उपयोग कैसे करें

    Microsoft Excel में PI फंक्शन एक गणित और त्रिकोणमिति फंक्शन है, और यह PI का मान लौटाता है। PI फॉर्मूला के लिए सूत्र =PI () है। PI फंक्शन सिंटैक्स में कोई तर्क नहीं है। Excel में PI फंक्शन का उपयोग कैसे करें Microsoft Excel में PI फंक्शन का उपयोग करने के लिए नीचे दिए गए चरणों का पालन करें: Microsoft

  1. एक्सेल में VLOOKUP मास्टर करें: कुशल डेटा पुनर्प्राप्ति के लिए पूर्ण गाइड एक्सेल में VLOOKUP मास्टर करें: कुशल डेटा पुनर्प्राप्ति के लिए पूर्ण गाइड

    क्या आपके पास एक्सेल में बड़ी स्प्रेडशीट है और आप उससे विशिष्ट जानकारी आसानी से फ़िल्टर और निकालना चाहते हैं? यदि आप एक्सेल में VLOOKUP का उपयोग करना सीख लें, तो आप केवल एक शक्तिशाली एक्सेल फ़ंक्शन से यह लुकअप कर सकते हैं। एक्सेल में VLOOKUP फ़ंक्शन कई लोगों को डराता है क्योंकि इसमें कई पैरामीटर होत