<?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[Seltsames timing Verhalten mit clock()]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem bei einer For schleife in der ein Prozessabschnitt gemessen werden soll</p>
<p>Pseudocoide is ca so</p>
<p>for(i=0;i&lt;N,i++){<br />
struct timeval t_start,t_stop;<br />
gettimeofday (&amp;t_start);<br />
unsigned int start = clock();</p>
<p>MeanFilter(3,data,data_ref, Width, Height);<br />
--&gt; ZU MESSENDE PROZEDUR</p>
<p>unsigned int stop = clock();<br />
gettimeofday(&amp;t_stop);</p>
<p>}</p>
<p>die differnez gibt sowohl bei clock() als auch by gettimeofday schön abwechselnd 10ms, und 0 ms</p>
<p>Offenbar wird der counter langsamer weitergezählt als die prozedur benötigt</p>
<p>Wie kann ich das umgehen?</p>
<p>Lg<br />
Maz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/261527/seltsames-timing-verhalten-mit-clock</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 07:28:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261527.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Feb 2010 17:09:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Seltsames timing Verhalten mit clock() on Fri, 19 Feb 2010 17:09:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Problem bei einer For schleife in der ein Prozessabschnitt gemessen werden soll</p>
<p>Pseudocoide is ca so</p>
<p>for(i=0;i&lt;N,i++){<br />
struct timeval t_start,t_stop;<br />
gettimeofday (&amp;t_start);<br />
unsigned int start = clock();</p>
<p>MeanFilter(3,data,data_ref, Width, Height);<br />
--&gt; ZU MESSENDE PROZEDUR</p>
<p>unsigned int stop = clock();<br />
gettimeofday(&amp;t_stop);</p>
<p>}</p>
<p>die differnez gibt sowohl bei clock() als auch by gettimeofday schön abwechselnd 10ms, und 0 ms</p>
<p>Offenbar wird der counter langsamer weitergezählt als die prozedur benötigt</p>
<p>Wie kann ich das umgehen?</p>
<p>Lg<br />
Maz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1858309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1858309</guid><dc:creator><![CDATA[mazzok]]></dc:creator><pubDate>Fri, 19 Feb 2010 17:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames timing Verhalten mit clock() on Fri, 19 Feb 2010 17:52:03 GMT]]></title><description><![CDATA[<p>clock schaltet traditionell 19.2-mal pro sekunde hoch. nu isses aber so, daß die armen user mit takten zu je 1000/19.2= 52ms nicht alle zurechtkommen. außerdem will man auch lecker betriebssysteme unterstützen, die ein feineres clock können. also hat man es so gemacht, daß clock in jedem takt 52 dazuzählt und dann zeigt sie halt in millisekunden an. aber sie zählt halt nicht in einerschritten hoch. sie geht nicht millisekundengenau.<br />
die 52 hat man fallenlassen, aber trotzdem hat man auch heute noch praktisch nie einerschritte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1858332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1858332</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 19 Feb 2010 17:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames timing Verhalten mit clock() on Fri, 19 Feb 2010 17:57:11 GMT]]></title><description><![CDATA[<p>Danke, das ist zwar sehr informativ, aber inwiefern hilft mir das bei meinem problem?<br />
Das erklärt mir nicht warums einmal 0 und einmal 10 ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1858335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1858335</guid><dc:creator><![CDATA[mazzok]]></dc:creator><pubDate>Fri, 19 Feb 2010 17:57:11 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames timing Verhalten mit clock() on Sat, 20 Feb 2010 01:58:24 GMT]]></title><description><![CDATA[<p>Natürlich erklärt es das.<br />
Anscheinend ist die Auflösung von clock() auf deinem System 10ms. D.h. zwei Zeiten die du dir holst können nur 0, 10, 20, 30 ... ms auseinander sein, aber niemals 1, 2, 3 ... ms.</p>
<p>Wenn du nun versuchst etwas zu messen, was &lt; 10 ms dauert, dann wirst du mal 0 mal 10ms rausbekommen. Je nachdem ob dazwischen ein &quot;Clock-Tick&quot; aufgetreten ist.</p>
<p>Lösen kannst du das z.B. indem du versuchst die Dauer des zu messenden Vorgangs so gross zu machen, dass die Auflösung der Clock wieder reicht. z.B. wenn du die Funktion einfach so lange wiederholst, dass es insgesamt vielleicht eine Sekunde dauert. In deinem Fall sollte das einfach sein: nimm die Zeiterfassung aus der Schleife raus, und ermittle nur die Zeit die die ganze Schleife braucht.</p>
<p>Dabei solltest du allerdings sicherstellen, dass der Compiler die Funktion nicht wegoptimiert. Aber das ist wieder ein anderes Thema. Und ... dass der Compiler die Funktion wegoptimiert, kann natürlich auch passieren, wenn du keine Schleife hast, und die Funktion nur 1x aufrufst.</p>
<p>Oder, andere Möglichkeit: eine Clock mit höherer Auflösung verwenden. Auf Windows Systemen gibt es z.B. QueryPerformanceCounter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1858488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1858488</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 20 Feb 2010 01:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames timing Verhalten mit clock() on Sat, 20 Feb 2010 12:37:07 GMT]]></title><description><![CDATA[<p>Danke herzlichst, ich werds mir gleich mnal reinziehen!! <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>
<p>lg<br />
M</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1858568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1858568</guid><dc:creator><![CDATA[mazzok]]></dc:creator><pubDate>Sat, 20 Feb 2010 12:37:07 GMT</pubDate></item></channel></rss>