<?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[Testframe für Codeschnippsel]]></title><description><![CDATA[<p>hi,</p>
<p>Habe mir ein Testframe gebastelt, womit ich die Zeiten für einzelne Codeteile messen kann. Das Problem ist, dass wenn die verflossene Zeit unter einer Sekunde ist nur Null rauskommt. Muss an der Division liegen, find den Fehler aber nicht.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

void welcome()
{
	std::cout &lt;&lt; &quot;Welcome!\npress enter to begin&quot; &lt;&lt; std::endl;
	std::cin.get();
}

void end()
{
	std::cout &lt;&lt; &quot;press enter to leave\nBye!&quot; &lt;&lt; std::endl;
	std::cin.clear();
	std::cin.ignore( std::cin.rdbuf()-&gt;in_avail() );
	std::cin.get();
}

#define PERFORMANCETIMER

int main()
{
	welcome();
#ifdef PERFORMANCETIMER
	unsigned __int64 frequency;
	unsigned __int64 start_ticks;
    unsigned __int64 current_ticks;
	int cycles = 1;
	QueryPerformanceFrequency( (LARGE_INTEGER*)&amp;frequency );   // &lt;--- Das gecaste stört mich auch
	QueryPerformanceCounter( (LARGE_INTEGER*)&amp;start_ticks );
	for( int i = 0; i &lt; cycles; ++i )
#endif
	// Testblock
	{
		Sleep( 500 );
	}
	// Testblock
#ifdef PERFORMANCETIMER
	QueryPerformanceCounter( (LARGE_INTEGER*)&amp;current_ticks );
	unsigned int passed_ticks = ( current_ticks - start_ticks );
	float passed_seconds = passed_ticks / frequency;      // &lt;--- Wenn dies kleiner als 1 ist, kommt 0 raus ???
	unsigned int ticks_per_cycle = passed_ticks / cycles;
	float milliseconds_per_cycle = ( passed_seconds / cycles ) * 1000;  // &lt;--- Hier auch :(
	std::cout &lt;&lt; &quot;Results:\nProcessed &quot; &lt;&lt; cycles &lt;&lt; &quot; cycles in &quot; 
		&lt;&lt; passed_seconds &lt;&lt; &quot; seconds\nPer cycle passed &quot; &lt;&lt; ticks_per_cycle
		&lt;&lt; &quot; ticks, that are &quot; &lt;&lt; milliseconds_per_cycle &lt;&lt; &quot; milliseconds\n&quot;
		&lt;&lt; std::endl;
#endif
	end();
}
</code></pre>
<p>Compiler schrieb:</p>
<blockquote>
<p>main.cpp(39) : warning C4244: 'initializing' : conversion from 'unsigned __int64' to 'unsigned int', possible loss of data<br />
main.cpp(40) : warning C4244: 'initializing' : conversion from 'unsigned __int64' to 'float', possible loss of data</p>
</blockquote>
<p>Hoffe ihr könnt mir Helfen.<br />
Wenn ihr anderes zu bemängeln habt, nur zu <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>
<p>Danke im voraus<br />
Grüsse<br />
PJ</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157925/testframe-für-codeschnippsel</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 12:06:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157925.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Aug 2006 16:58:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Testframe für Codeschnippsel on Wed, 30 Aug 2006 16:58:47 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>Habe mir ein Testframe gebastelt, womit ich die Zeiten für einzelne Codeteile messen kann. Das Problem ist, dass wenn die verflossene Zeit unter einer Sekunde ist nur Null rauskommt. Muss an der Division liegen, find den Fehler aber nicht.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;

void welcome()
{
	std::cout &lt;&lt; &quot;Welcome!\npress enter to begin&quot; &lt;&lt; std::endl;
	std::cin.get();
}

void end()
{
	std::cout &lt;&lt; &quot;press enter to leave\nBye!&quot; &lt;&lt; std::endl;
	std::cin.clear();
	std::cin.ignore( std::cin.rdbuf()-&gt;in_avail() );
	std::cin.get();
}

#define PERFORMANCETIMER

int main()
{
	welcome();
#ifdef PERFORMANCETIMER
	unsigned __int64 frequency;
	unsigned __int64 start_ticks;
    unsigned __int64 current_ticks;
	int cycles = 1;
	QueryPerformanceFrequency( (LARGE_INTEGER*)&amp;frequency );   // &lt;--- Das gecaste stört mich auch
	QueryPerformanceCounter( (LARGE_INTEGER*)&amp;start_ticks );
	for( int i = 0; i &lt; cycles; ++i )
#endif
	// Testblock
	{
		Sleep( 500 );
	}
	// Testblock
#ifdef PERFORMANCETIMER
	QueryPerformanceCounter( (LARGE_INTEGER*)&amp;current_ticks );
	unsigned int passed_ticks = ( current_ticks - start_ticks );
	float passed_seconds = passed_ticks / frequency;      // &lt;--- Wenn dies kleiner als 1 ist, kommt 0 raus ???
	unsigned int ticks_per_cycle = passed_ticks / cycles;
	float milliseconds_per_cycle = ( passed_seconds / cycles ) * 1000;  // &lt;--- Hier auch :(
	std::cout &lt;&lt; &quot;Results:\nProcessed &quot; &lt;&lt; cycles &lt;&lt; &quot; cycles in &quot; 
		&lt;&lt; passed_seconds &lt;&lt; &quot; seconds\nPer cycle passed &quot; &lt;&lt; ticks_per_cycle
		&lt;&lt; &quot; ticks, that are &quot; &lt;&lt; milliseconds_per_cycle &lt;&lt; &quot; milliseconds\n&quot;
		&lt;&lt; std::endl;
#endif
	end();
}
</code></pre>
<p>Compiler schrieb:</p>
<blockquote>
<p>main.cpp(39) : warning C4244: 'initializing' : conversion from 'unsigned __int64' to 'unsigned int', possible loss of data<br />
main.cpp(40) : warning C4244: 'initializing' : conversion from 'unsigned __int64' to 'float', possible loss of data</p>
</blockquote>
<p>Hoffe ihr könnt mir Helfen.<br />
Wenn ihr anderes zu bemängeln habt, nur zu <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>
<p>Danke im voraus<br />
Grüsse<br />
PJ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127794</guid><dc:creator><![CDATA[Performance Junkie]]></dc:creator><pubDate>Wed, 30 Aug 2006 16:58:47 GMT</pubDate></item><item><title><![CDATA[Reply to Testframe für Codeschnippsel on Wed, 30 Aug 2006 17:57:55 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>bekanntes Problem : Wenn zu zwei Integer-Variablen dividierst, kommt als Ergebnis erstmal ein gerundeter Integer-Wert raus, der dann als float interpretiert wird.<br />
Du must also gleich mit floats dividieren</p>
<pre><code class="language-cpp">float passed_seconds = float(passed_ticks) / float(frequency);
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127831</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 30 Aug 2006 17:57:55 GMT</pubDate></item><item><title><![CDATA[Reply to Testframe für Codeschnippsel on Wed, 30 Aug 2006 18:31:56 GMT]]></title><description><![CDATA[<p>Danke, danke.<br />
Ich habs nicht mehr gesehn..</p>
<p>bye PJ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127874</guid><dc:creator><![CDATA[PJ]]></dc:creator><pubDate>Wed, 30 Aug 2006 18:31:56 GMT</pubDate></item></channel></rss>