Thursday, 15 April 2010

c++11 - Duration from std::time_t (in between steady_clock) -


मेरे पास एक फ़ंक्शन है जो std :: time_t एक स्थिर समय समय बिंदु से देता है:

  स्थिर const time_t स्थिर_क्लॉक_टा_टाइम_टी (स्थिर_क्ल :: समय_पॉइंट टी) {वापसी सिस्टम_क्लॉक :: to_time_t (system_clock :: अब () + (टी - स्थिर_क्लॉक :: अब ())); }  

एक फ़ंक्शन में मुझे समय लगता है std :: time_t शब्दों में:

  steady_clock :: time_point p1 = steady_clock :: अब ( ); Const std :: time_t t1 = steady_clock_to_time_t (पी 1);  

किसी अन्य फ़ंक्शन में t1 पारित हो जाता है। मुझे यह गणना करने की आवश्यकता है कि यह t1 से t2 तक कितना समय लगेगा , लेकिन इनमें से कोई भी काम नहीं करता:

  शून्य फ़ंक्शन (std :: time_t t1) {std :: cout & lt; & lt; टी 1 & एलटी; & lt; '\ N'; स्थिर_क्लॉक :: टाइम_पॉइंट टीपी 2 = स्थिर_क्लॉक :: अब (); स्थिर_क्लॉक :: टाइम_पॉइंट टीपी 1 = सिस्टम_क्लॉक :: से_टाइम_टी (टी 1); // देखें कि यह कितना समय std :: chrono :: अवधि & lt; डबल & gt; timeTaken {std :: chrono :: duration_cast & LT; std :: chrono :: अवधि के & lt; डबल & gt; & gt; (TP2-टीपी 1)}; ऑटो डी = std :: chrono :: duration_cast & lt; std :: chrono :: microseconds & gt; (tp2 - tp1)। Count (); Std :: cout & lt; & lt; "ले लिया:" & lt; & lt; डी & lt; & lt; "माइक्रोसेकंड्स \ n";  

एक स्टडी :: टाइम_टी को देखते हुए जो स्थिर घड़ी का उपयोग करते हुए टाइमस्टैंप किया गया था (ऊपर रूपांतरण फ़ंक्शन का उपयोग करके, लेकिन मैं कुछ और के लिए खुला हूँ), तब मैं बाद में टाइमस्टैम्प कैसे और फिर देखें कि दो बार के बीच माइक्रोसॉन्ड्स में कितने समय लगे?

संपादित करें:

  const std :: time_t t1 = steady_clock :: अब ()। Time_since_epoch () .count ();  

यह func

  शून्य फ़ंक्शन को चला जाता है (std :: time_t t1) {steady_clock :: time_point tp2 = steady_clock :: now ();  

मैं टीपी 2 और टी 1 के बीच माइक्रोसॉन्ड्स में अवधि कैसे प्राप्त करूं?

ठीक है, मैं इसे प्राप्त करता हूं:

  लंबा t1 = स्थिर_क्लॉक :: अब ()। Time_since_epoch ()। Count (); समारोह (T1); Typedef std :: chrono :: अवधि & lt; लंबा, std :: अनुपात & lt; 1l, 1000000000l & gt; micros_type; फ़ंक (लंबी डी 1) {ऑटो समय 1 = std :: chrono :: duration_cast & lt; std :: chrono :: microseconds & gt; (micros_type (d1)); ऑटो time2 = std :: chrono :: steady_clock :: अब ()। Time_since_epoch (); ऑटो डी = std :: chrono :: duration_cast & lt; std :: chrono :: microseconds & gt; (समय 2 - समय 1)। Count ();  

No comments:

Post a Comment