<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Zeitmessung: Wie lange braucht meine Funktion??]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich weiß nicht genau wie ich effizient und genau die Zeit meiner Funktion ausgeben lassen kann.<br />
Im Moment mache ich das so:</p>
<pre><code class="language-cpp">struct timeval start, end;
    long sec, micro_sec;
    gettimeofday(&amp;start,(struct timezone *)0);

    myFunction();

    gettimeofday(&amp;end, (struct timezone *)0);
    sec = end.tv_sec - start.tv_sec;
    micro_sec = end.tv_usec - start.tv_usec;
    if(micro_sec &lt; 0)
    {
        micro_sec += 1000000;
        micro_sec--;
    }
    std::cout &lt;&lt; &quot;--------------------------------------------------------------&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;Run time profiling:&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;\tSeconds:       &quot; &lt;&lt; sec &lt;&lt; &quot;,&quot; &lt;&lt; micro_sec &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;--------------------------------------------------------------&quot; &lt;&lt; std::endl;
</code></pre>
<p>ich bekomme allerdings immer verschiedene werte - kann das evtl. an den prozessen im hintergrund des Betriebssystems liegen? Gibt es keine Möglichkeit eine exakte angabe zu machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162474/zeitmessung-wie-lange-braucht-meine-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 15:04:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162474.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Oct 2006 22:40:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Wed, 18 Oct 2006 22:40:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich weiß nicht genau wie ich effizient und genau die Zeit meiner Funktion ausgeben lassen kann.<br />
Im Moment mache ich das so:</p>
<pre><code class="language-cpp">struct timeval start, end;
    long sec, micro_sec;
    gettimeofday(&amp;start,(struct timezone *)0);

    myFunction();

    gettimeofday(&amp;end, (struct timezone *)0);
    sec = end.tv_sec - start.tv_sec;
    micro_sec = end.tv_usec - start.tv_usec;
    if(micro_sec &lt; 0)
    {
        micro_sec += 1000000;
        micro_sec--;
    }
    std::cout &lt;&lt; &quot;--------------------------------------------------------------&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;Run time profiling:&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;\tSeconds:       &quot; &lt;&lt; sec &lt;&lt; &quot;,&quot; &lt;&lt; micro_sec &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;--------------------------------------------------------------&quot; &lt;&lt; std::endl;
</code></pre>
<p>ich bekomme allerdings immer verschiedene werte - kann das evtl. an den prozessen im hintergrund des Betriebssystems liegen? Gibt es keine Möglichkeit eine exakte angabe zu machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157354</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 18 Oct 2006 22:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Wed, 18 Oct 2006 23:17:15 GMT]]></title><description><![CDATA[<p>Keine mit standard C++. Je nach System gibts aber verschiedene Sachen die man machen/verwenden kann um genauer Zeit zu messen und den Einfluss von anderen Prozessen zu minimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157364</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Wed, 18 Oct 2006 23:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 07:00:39 GMT]]></title><description><![CDATA[<p>Ich weiß nicht genau, ob das exakter ist, aber eventuell könntest du die Messung über <a href="http://man.cx/clock" rel="nofollow">man: clock</a> durchführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157409</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 19 Oct 2006 07:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 08:56:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#pragma warning(push) 
#pragma warning(disable:4035) 
u64 rdtsc() 
{ 
	__asm rdtsc; 
} 
#pragma warning(pop)
</code></pre>
<p>Musste noch an deinen Compiler anpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157472</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 19 Oct 2006 08:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 09:24:59 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#pragma warning(push) 
#pragma warning(disable:4035) 
u64 rdtsc() 
{ 
	__asm rdtsc; 
} 
#pragma warning(pop)
</code></pre>
<p>...</p>
</blockquote>
<p>Super C++-Code ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: Nicht ärgern, ist bestimmt eine gute Lösung für sowas - habe mich nur über cpp-tags darum amüsiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157495</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 19 Oct 2006 09:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 16:57:29 GMT]]></title><description><![CDATA[<p>Unter Windows wenn irgendwie möglich bitte immer QueryPerformanceCounter verwenden und nicht RDTSC, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157839</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Thu, 19 Oct 2006 16:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 17:05:12 GMT]]></title><description><![CDATA[<p>Begründung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157846</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 19 Oct 2006 17:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 19:40:36 GMT]]></title><description><![CDATA[<p>hallo,<br />
danke für eure antworten...</p>
<p>@ michael: danke für den code - aber was ist denn DAS? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>an meinen compiler anpassen? Arbeite mit Debian Linux und gcc 3.4.3 (ich weiß ist veraltet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157929</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Thu, 19 Oct 2006 19:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 21:53:47 GMT]]></title><description><![CDATA[<p>Fürn gcc sieht das so aus:</p>
<pre><code class="language-cpp">typedef unsigned long long u64;

u64 rdtsc()
{
    __asm__(&quot;rdtsc&quot;);
}
</code></pre>
<p>Benutzung entsprechend:</p>
<pre><code class="language-cpp">u64 time = rdtsc();

// irgendwelche Berechnungen

time = rdtsc() - time;
cout &lt;&lt; time;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1157995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157995</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 19 Oct 2006 21:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zeitmessung: Wie lange braucht meine Funktion?? on Thu, 19 Oct 2006 22:41:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20068">@Michael</a> E.:</p>
<p>Weil QueryPerformanceCounter viele Probleme &quot;kennt&quot; und drum herumarbeitet auf die man stösst wenn man RDTSC verwendet. U.A. dass die Frequenz schwankt mit der RDTSC zählt (Speed-Step und Cool 'n' Quiet etc.) und es Probleme mit Multi Core CPUs gibt.</p>
<p>QueryPerformanceCounter ist dafür auch leider um einiges langsamer als RDTSC, aber dafür bekommst du (meistens) gute Werte - viel öfter auf jeden Fall als mit RDTSC. Microsoft bringt auch immer wieder Patches heraus falls neue Probleme auftreten wie nicht lange her mit den Athlon X2 CPUs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1158022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1158022</guid><dc:creator><![CDATA[Plotzenhotz]]></dc:creator><pubDate>Thu, 19 Oct 2006 22:41:15 GMT</pubDate></item></channel></rss>