<?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[Exakte Zeitmessung]]></title><description><![CDATA[<p>Wie kann ich die Zeit zwischen zwei Zeitpunkten (z.B. Frames) am genauesten bestimmen.<br />
Habe es mit timeGetTime() versucht. Aber das hat irgendwie nicht so gut funktioniert. Ich wollte die Dauer dann in sekunden umrechnen.<br />
Habs also so gemacht:</p>
<pre><code>DWORD dwTime1, dwTime2;
float fPeriod;

dwTime1 = timeGetTime();

....

dwTime2 = timeGetTime();
fPeriod = (float)(dwTime2 - dwTime1) / 1000.0f;
</code></pre>
<p>Aber irgendwie kamen da nur sehr seltsame Zahlen raus, meistens nämlich 0.<br />
Also wenn ihr ne bessere / genauere Möglichkeit wisst, bitte helft mir.</p>
<p>Danke Nico</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/121934/exakte-zeitmessung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 22:41:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121934.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Sep 2005 16:35:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exakte Zeitmessung on Wed, 28 Sep 2005 16:35:44 GMT]]></title><description><![CDATA[<p>Wie kann ich die Zeit zwischen zwei Zeitpunkten (z.B. Frames) am genauesten bestimmen.<br />
Habe es mit timeGetTime() versucht. Aber das hat irgendwie nicht so gut funktioniert. Ich wollte die Dauer dann in sekunden umrechnen.<br />
Habs also so gemacht:</p>
<pre><code>DWORD dwTime1, dwTime2;
float fPeriod;

dwTime1 = timeGetTime();

....

dwTime2 = timeGetTime();
fPeriod = (float)(dwTime2 - dwTime1) / 1000.0f;
</code></pre>
<p>Aber irgendwie kamen da nur sehr seltsame Zahlen raus, meistens nämlich 0.<br />
Also wenn ihr ne bessere / genauere Möglichkeit wisst, bitte helft mir.</p>
<p>Danke Nico</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882330</guid><dc:creator><![CDATA[_Ocin_]]></dc:creator><pubDate>Wed, 28 Sep 2005 16:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 06:03:08 GMT]]></title><description><![CDATA[<p>Zeig mal deine Ausgabe von fPeriod.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882620</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 29 Sep 2005 06:03:08 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 09:15:07 GMT]]></title><description><![CDATA[<p>Zeitmessung ist unter Windows nicht sehr genau.</p>
<p>Die Granularitaet bewegt sich zwischen 600 kHz und 50 Hz.</p>
<p>Am besten ist, Du verwendest die neuen Performance Counters (siehe API Dokumentation).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882757</guid><dc:creator><![CDATA[Power Off]]></dc:creator><pubDate>Thu, 29 Sep 2005 09:15:07 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 11:25:11 GMT]]></title><description><![CDATA[<p>Also, wenn ich längere Zeit genau messen will, benutze ich die Windows<br />
(oder Bios)-Uhr. Ich merk mir die Zeit am Start, rechne alles in ms um,<br />
und am ende ziehe ich die aktuelle Zeit von der Zeit am Start ab...</p>
<p>Ich weiß nicht, ob dir das Hilft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/882855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882855</guid><dc:creator><![CDATA[EinM]]></dc:creator><pubDate>Thu, 29 Sep 2005 11:25:11 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 11:46:40 GMT]]></title><description><![CDATA[<p>noch genauer wäre RDTSC, benutz doch mal die forensuche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/882877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882877</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 29 Sep 2005 11:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 11:55:00 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p>noch genauer wäre RDTSC, benutz doch mal die forensuche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Hier:</p>
<pre><code class="language-cpp">ULONGLONG GetCPUTicks( void ) {
   _asm {
      rdtsc
   }
}
</code></pre>
<p>Man hat allerdings das Problem damit, entweder die CPU-Frequenz genau kennen zu muessen, oder man muss einen Mittelwert aus Testschleifen ermitteln, um die ungefaehre Tick-Anzahl pro Zeitintervall festzustellen, bevor man damit rechnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882888</guid><dc:creator><![CDATA[Power Off]]></dc:creator><pubDate>Thu, 29 Sep 2005 11:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 12:08:46 GMT]]></title><description><![CDATA[<p>Power Off schrieb:</p>
<blockquote>
<p>Man hat allerdings das Problem damit, entweder die CPU-Frequenz genau kennen zu muessen, oder man muss einen Mittelwert aus Testschleifen ermitteln, um die ungefaehre Tick-Anzahl pro Zeitintervall festzustellen, bevor man damit rechnet.</p>
</blockquote>
<p>jep, ist aber das genauste.</p>
<p>aus meiner cpu klasse. ist relativ genau, knackpunkt ist das sleep da es betriebssytemabhängig ist.</p>
<pre><code class="language-cpp">//! \brief CPU Geschwindigkeit ermitteln
			//! \return MHz
			unsigned long CalculateSpeed()
			{
				unsigned int nStartLow, nStartHigh;
				unsigned int nEndLow, nEndHigh;
				unsigned long long nStart = 0, nEnd = 0;

#if defined(_MSC_VER)
				_asm
				{
					rdtsc
					mov [nStartLow], eax
					mov [nStartHigh], edx
				}
#else
				asm volatile(&quot;rdtsc&quot; : &quot;=a&quot;(nStartLow), &quot;=d&quot;(nStartHigh));
#endif

#ifdef _WIN32
				Sleep(1000);
#else
				sleep(1);
#endif

#if defined(_MSC_VER)
				_asm
				{
					rdtsc
					mov [nEndLow], eax
					mov [nEndHigh], edx
				}
#else
				asm volatile(&quot;rdtsc&quot; : &quot;=a&quot;(nEndLow), &quot;=d&quot;(nEndHigh));
#endif

				nStart |= nStartHigh;
				nStart &lt;&lt;= 32;
				nStart |= nStartLow;

				nEnd |= nEndHigh;
				nEnd &lt;&lt;= 32;
				nEnd |= nEndLow;

				return(static_cast&lt;unsigned long&gt;(((nEnd - nStart) / 1) / 1000000));
			}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/882904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882904</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 29 Sep 2005 12:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 17:39:56 GMT]]></title><description><![CDATA[<p>Power Off schrieb:</p>
<blockquote>
<p>Man hat allerdings das Problem damit, entweder die CPU-Frequenz genau kennen zu muessen</p>
</blockquote>
<p>Ist zwar erforderlich, aber kein Problem. CallNtPowerInformation wird dir dabei helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883136</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 29 Sep 2005 17:39:56 GMT</pubDate></item><item><title><![CDATA[Reply to Exakte Zeitmessung on Thu, 29 Sep 2005 20:42:08 GMT]]></title><description><![CDATA[<p>Danke schonmal für eure Hilfe!</p>
<p>Scheint mir ja alles um einiges komplexer zu sein als ich das gedacht hatte.<br />
Sollte halt schon nicht zu ungenau sein. Ich brauch die Zeit zwischen zwei Frames....</p>
<p>(Eigentlich müsste ich doch da mit Millisekunden recht gut auskommen, aber irgendwie kamen da mit timeGetTime() nur seltsame Dinge raus....)</p>
<p>Ich werd einfach mal ein paar eurer Tips probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/883251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/883251</guid><dc:creator><![CDATA[_Ocin_]]></dc:creator><pubDate>Thu, 29 Sep 2005 20:42:08 GMT</pubDate></item></channel></rss>