2011-08-16 15 views
6

के संकल्प को मापना std::clock() कॉल के समाधान को मापना संभव है? या यह एक समस्या है जहां बिना प्रभाव के निरीक्षण करना संभव नहीं है?`std :: घड़ी()`

मैं निम्नलिखित अनुभवहीन बेंचमार्क लिखा है:

#include <ctime> 
#include <iostream> 

int main() { 
    std::clock_t initial = std::clock(); 
    std::clock_t current; 
    while (initial == (current = std::clock())); 
    std::cout << "Initial: " << initial << std::endl; 
    std::cout << "Current: " << current << std::endl; 
    std::cout << "Precision: " << (static_cast<double>(current - initial)/CLOCKS_PER_SEC) << "s" << std::endl; 
} 

मैं इसे कुछ सौ बार चलाने की है और यह हमेशा 0.01s आउटपुट।

मेरे प्रश्न हैं:

  • clock() के संकल्प को मापने के लिए एक अच्छा तरीका कोड ऊपर है?
  • यदि नहीं तो इसके साथ क्या गलत है? और यह कैसे सुधार किया जा सकता है?
+1

"सटीकता" से आपका क्या मतलब है? आप किसी अन्य, "उचित" घड़ी का जिक्र किए बिना इसका आकलन कैसे करेंगे? –

+0

क्या यह हर बार पहली लूप पर टूट जाता है? – James

+1

@ केरेक एसबी आप मेरे प्रश्न को पारदर्शी कर रहे हैं। – StackedCrooked

उत्तर

2

आप कर सकते हैं। आप जो कुछ भी कर रहे हैं वह कुछ अच्छा है सन्निकटन। लेकिन मुझे यकीन नहीं है कि यह कितना उपयोगी है: यह रिज़ॉल्यूशन निर्धारित करता है, लेकिन यह आपको सटीकता के बारे में कुछ भी नहीं बताता है; विंडोज के तहत , उदाहरण के लिए, clock बेकार प्रस्तुत करने के लिए इतना गलत है।

संबंधित मुद्दे