<?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[Durchlaufzeit einer Schleife]]></title><description><![CDATA[<p>Poblem ist, dass die Schleife in unregelmäßigen Abständen besonder viel Zeit benötigt.<br />
Hat jemand hier eine Ahnung woran das liegen könnte, bzw. eine Lösung für das Problem?<br />
Schonmal im voraus vielen dank.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sys/time.h&gt;

using namespace std;

//filestream erstellen
fstream f;

int main(int argc, char *argv[]) 
{	
	//Textdatei zum schreiben öffnen
	f.open(&quot;TEST.txt&quot;, ios::out);											

	//Zeitvariablen erstellen
	timeval zeit1;
	timeval zeit2;

	//Schleifenzähler erstellen
	int i = 0;

	//Schleifendurchläufe festlegen
	int anzahl = 1000*1000*4;

	//Puffer erstellen
	unsigned char *puffer;
	puffer = new unsigned char[anzahl];

	//Dauerschleife
	while(true)
	{
		//Startzeit holen
		gettimeofday(&amp;zeit1, NULL);

		//For-Schleife durchlaufen
		for(i = 0; i &lt; (anzahl); i+=4)
		{
			//Puffer füllen
			puffer[i]   = 50;
			puffer[i+1] = 50;
			puffer[i+2] = 50;
			puffer[i+3] = 0;
		}
		//Endzeit holen
		gettimeofday(&amp;zeit2, NULL);

		//Durchlaufzeit in Millisekunden berechnen und in Datei screiben
		f &lt;&lt; ((zeit2.tv_sec - zeit1.tv_sec)*1000.0) + ((zeit2.tv_usec - zeit1.tv_usec)/1000.0) &lt;&lt; endl;
	}

	//Puffer löschen
	delete[] puffer;

	//Datei schließen
	f.close();

	return 0;
}
</code></pre>
<p>Inhalt der .txt :</p>
<pre><code>0
15.626
0
0
15.626
0
0
0
15.627
0
0
15.626
0
0
0
15.625
0
0
0
15.626
0
0
15.625
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.625
0
0
0
15.626
0
0
15.626
0
0
0
15.625
0
0
15.627
0
0
0
15.625
0
0
15.626
0
0
0
15.625
0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/305159/durchlaufzeit-einer-schleife</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 01:15:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305159.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Jun 2012 13:10:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Fri, 22 Jun 2012 13:10:50 GMT]]></title><description><![CDATA[<p>Poblem ist, dass die Schleife in unregelmäßigen Abständen besonder viel Zeit benötigt.<br />
Hat jemand hier eine Ahnung woran das liegen könnte, bzw. eine Lösung für das Problem?<br />
Schonmal im voraus vielen dank.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sys/time.h&gt;

using namespace std;

//filestream erstellen
fstream f;

int main(int argc, char *argv[]) 
{	
	//Textdatei zum schreiben öffnen
	f.open(&quot;TEST.txt&quot;, ios::out);											

	//Zeitvariablen erstellen
	timeval zeit1;
	timeval zeit2;

	//Schleifenzähler erstellen
	int i = 0;

	//Schleifendurchläufe festlegen
	int anzahl = 1000*1000*4;

	//Puffer erstellen
	unsigned char *puffer;
	puffer = new unsigned char[anzahl];

	//Dauerschleife
	while(true)
	{
		//Startzeit holen
		gettimeofday(&amp;zeit1, NULL);

		//For-Schleife durchlaufen
		for(i = 0; i &lt; (anzahl); i+=4)
		{
			//Puffer füllen
			puffer[i]   = 50;
			puffer[i+1] = 50;
			puffer[i+2] = 50;
			puffer[i+3] = 0;
		}
		//Endzeit holen
		gettimeofday(&amp;zeit2, NULL);

		//Durchlaufzeit in Millisekunden berechnen und in Datei screiben
		f &lt;&lt; ((zeit2.tv_sec - zeit1.tv_sec)*1000.0) + ((zeit2.tv_usec - zeit1.tv_usec)/1000.0) &lt;&lt; endl;
	}

	//Puffer löschen
	delete[] puffer;

	//Datei schließen
	f.close();

	return 0;
}
</code></pre>
<p>Inhalt der .txt :</p>
<pre><code>0
15.626
0
0
15.626
0
0
0
15.627
0
0
15.626
0
0
0
15.625
0
0
0
15.626
0
0
15.625
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.626
0
0
15.626
0
0
0
15.625
0
0
0
15.626
0
0
15.626
0
0
0
15.625
0
0
15.627
0
0
0
15.625
0
0
15.626
0
0
0
15.625
0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2226189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226189</guid><dc:creator><![CDATA[frmimue]]></dc:creator><pubDate>Fri, 22 Jun 2012 13:10:50 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Fri, 22 Jun 2012 13:21:39 GMT]]></title><description><![CDATA[<p>Da wird wohl die Auflösung deiner Systemuhr nicht gut genug sein. Sie stellt sich anscheinend alle 15.626 ms weiter.</p>
<p>Der Rest des Programms: Ich hoffe mal, das ist zur Übung und nicht ganz ernst, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226195</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Jun 2012 13:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Fri, 22 Jun 2012 13:49:26 GMT]]></title><description><![CDATA[<p>Vielen dank für die sehr schnelle Antwort, auf das Problem hätte ich eigentlich auch selber kommen müssen ...</p>
<p>Der Code dient nur dazu ein komplexeres Programm möglichst genau auf das Problem reduziert abzubilden, zB. wird der Puffer mit sinvollen Daten gefüllt.<br />
Solltest du jedoch Verbesserungsvorschläge haben, die mir vielleicht auch für das komplexere Programm helfen könnten,würde ich mich darüber freuen.</p>
<p>Welche Möglichkeiten habe ich eine höhere Auflösung des Timers zu erreichen?<br />
Spontan fällt mir nur der &quot;QueryPerformanceCounter&quot; ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226206</guid><dc:creator><![CDATA[frmimue]]></dc:creator><pubDate>Fri, 22 Jun 2012 13:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Fri, 22 Jun 2012 14:33:48 GMT]]></title><description><![CDATA[<p>frmimue schrieb:</p>
<blockquote>
<p>Der Code dient nur dazu ein komplexeres Programm möglichst genau auf das Problem reduziert abzubilden, zB. wird der Puffer mit sinvollen Daten gefüllt.<br />
Solltest du jedoch Verbesserungsvorschläge haben, die mir vielleicht auch für das komplexere Programm helfen könnten,würde ich mich darüber freuen.</p>
</blockquote>
<ul>
<li>Warum fstream, statt einem der ofstream, wenn du nur schreibst?</li>
<li>Warum den Stream global? Bei lokalem Streamobjekt bräuchtest du auch den open/close Quatsch nicht.</li>
<li>Warum new für Arrays? Das ist in C++ immer falsch. Nimm std::vector.</li>
<li>Warum Variablen nicht direkt initialisieren? Besonders putzig sind die Zeilen 26,27.</li>
<li>Galt für den Filestream besonders, aber gilt auch für deine anderen Variablen: Variablen so lokal wie möglich halten.</li>
<li>Warum endl (was '\n' und flush() ist), wenn du doch nur '\n' meinst?</li>
<li>Warum return 0 aus main?</li>
</ul>
<blockquote>
<p>Welche Möglichkeiten habe ich eine höhere Auflösung des Timers zu erreichen?<br />
Spontan fällt mir nur der &quot;QueryPerformanceCounter&quot; ein.</p>
</blockquote>
<p>Betreibssystemabhängig. Aber ich bin jetzt verwirrt. Dein obiger Code war Unix, QueryPerformanceCounter ist Windows. clock_gettime wäre eine Möglichkeit in Linux. Ein systemunabhängiger Wrapper ist in der verbreiteten Boost-Bibliothek zu finden. gettimeofday ist auf jeden Fall ein Irrweg, das ist, wie der Name schon sagt, eher etwas um die aktuelle Uhrzeit zu bekommen.</p>
<p>Außerdem noch ganz wichtig ist der Unterschied zwischen der Uhrzeit und der CPU-Zeit eines Programms. Du bist vermutlich eher an der CPU-Zeit interessiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226230</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Jun 2012 14:33:48 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Fri, 22 Jun 2012 17:39:12 GMT]]></title><description><![CDATA[<blockquote>
<p>Welche Möglichkeiten habe ich eine höhere Auflösung des Timers zu erreichen?<br />
Spontan fällt mir nur der &quot;QueryPerformanceCounter&quot; ein.</p>
</blockquote>
<p>Was ist mit <code>chrono</code> aus C++11?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226286</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 22 Jun 2012 17:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 11:14:38 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<ul>
<li>Warum fstream, statt einem der ofstream, wenn du nur schreibst?</li>
<li>Warum den Stream global? Bei lokalem Streamobjekt bräuchtest du auch den open/close Quatsch nicht.</li>
<li>Warum new für Arrays? Das ist in C++ immer falsch. Nimm std::vector.</li>
<li>Warum Variablen nicht direkt initialisieren? Besonders putzig sind die Zeilen 26,27.</li>
<li>Galt für den Filestream besonders, aber gilt auch für deine anderen Variablen: Variablen so lokal wie möglich halten.</li>
<li>Warum endl (was '\n' und flush() ist), wenn du doch nur '\n' meinst?</li>
<li>Warum return 0 aus main?</li>
</ul>
</blockquote>
<ul>
<li>Nicht drüber nachgedacht, hab ich mal geändert.</li>
<li>Weil der nur zum Debuggen gedacht ist, wird hinterher noch, im richtigen Projekt, eine eigene Klasse für geschrieben.</li>
<li>Hatte in letzter Zeit nur in reinem C programmiert, und deswegen std::vector vergesssen, jedoch kann es sein dass ich aufgrund von Geschwindigkeit trotzdem ein Array verwenden muss.</li>
<li>Wie gesagt, hab ich den Code recht schnell hingeklatscht, habe ich jetzt auch mal geändert.</li>
<li>In dem Projekt stehen die Variablen in einer Klasse, wollte das ganze nur mögichst schnell abbilden und hab mir darüber keine Gedanken gemacht.</li>
<li>Weil ich das Programm zu jeder zeit abbrechen möchte, ohne flush() ist nicht gesichert, dass die komplette Ausgabe in der Datei steht.</li>
<li>Warum nicht?</li>
</ul>
<p>Das Projekt läuft unter Windows, jedoch wollte ich an allen Stellen an denen es möglich ist es Systemunabhängig zu halten.<br />
Weiterhin bin ich nicht an der Systemzeit interessiert, sondern an der reellen Zeit.</p>
<p>Vielen dank an dieser Stelle für deine Hilfe :).</p>
<p>Gugelmoser schrieb:</p>
<blockquote>
<p>Was ist mit <code>chrono</code> aus C++11?</p>
</blockquote>
<p>Danke, habe <code>chrono</code> bisher noch nicht gekannt. Aber sehr schön, dass es mittlerweile einen standarisierten präzisen Timer gibt.</p>
<p>Im folgenden nochmal der neue Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;stdlib.h&gt;
#include &lt;chrono&gt;
#include &lt;vector&gt;

using namespace std;

int main(int argc, char *argv[]) 
{	
	srand(time(NULL));
	//Textdatei zum schreiben öffnen
	ofstream f (&quot;TEST.txt&quot;);			

	//Schleifendurchläufe festlegen
	int anzahl = 2000*1000*40;

	//Puffer erstellen
	unsigned char *puffer = new unsigned char[anzahl];

	vector&lt;unsigned char&gt; buffer(anzahl, 0);

	//Dauerschleife
	while(true)
	{
		//Startzeit holen
		auto t1 = chrono::high_resolution_clock::now();

		//For-Schleife durchlaufen
		for(int i = 0; i &lt; (anzahl); i+=4)
		{
			//Puffer füllen
			buffer.at(i)   = 50;
			buffer.at(i+1) = 50;
			buffer.at(i+2) = 50;
		}
		//Endzeit holen
		auto t2 = chrono::high_resolution_clock::now();

		//Durchlaufzeit in Millisekunden berechnen und in Datei screiben
		f &lt;&lt; &quot;Vector safe: &quot; &lt;&lt; chrono::duration_cast&lt;chrono::milliseconds&gt;(t2-t1).count() &lt;&lt; &quot;ms.&quot;&lt;&lt; &quot;\n&quot;;

		//Startzeit holen
		t1 = chrono::high_resolution_clock::now();

		//For-Schleife durchlaufen
		for(int i = 0; i &lt; (anzahl); i+=4)
		{
			//Puffer füllen
			buffer[i]   = 50;
			buffer[i+1] = 50;
			buffer[i+2] = 50;
		}
		//Endzeit holen
		t2 = chrono::high_resolution_clock::now();

		//Durchlaufzeit in Millisekunden berechnen und in Datei screiben
		f &lt;&lt; &quot;Vector:      &quot; &lt;&lt; chrono::duration_cast&lt;chrono::milliseconds&gt;(t2-t1).count() &lt;&lt; &quot;ms.&quot;&lt;&lt; &quot;\n&quot;;

		//Startzeit holen
		t1 = chrono::high_resolution_clock::now();

		//For-Schleife durchlaufen
		for(int i = 0; i &lt; (anzahl); i+=4)
		{
			//Puffer füllen
			puffer[i]   = 50;
			puffer[i+1] = 50;
			puffer[i+2] = 50;
		}
		//Endzeit holen
		t2 = chrono::high_resolution_clock::now();

		//Durchlaufzeit in Millisekunden berechnen und in Datei screiben
		f &lt;&lt; &quot;Array:      &quot; &lt;&lt; chrono::duration_cast&lt;chrono::milliseconds&gt;(t2-t1).count() &lt;&lt; &quot;ms.&quot;&lt;&lt; &quot;\n&quot; &lt;&lt; endl;

	}
}
</code></pre>
<p>Und der Inhalt der TEST.txt:</p>
<pre><code>Vector safe: 750ms.
Vector:      156ms.
Array:      93ms.

Vector safe: 750ms.
Vector:      140ms.
Array:      78ms.

Vector safe: 750ms.
Vector:      156ms.
Array:      78ms.

Vector safe: 734ms.
Vector:      156ms.
Array:      78ms.

Vector safe: 734ms.
Vector:      156ms.
Array:      78ms.

Vector safe: 734ms.
Vector:      156ms.
Array:      78ms.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2226964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226964</guid><dc:creator><![CDATA[frmimue]]></dc:creator><pubDate>Mon, 25 Jun 2012 11:14:38 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 12:11:48 GMT]]></title><description><![CDATA[<p>Du machst beim compilieren irgendwas massiv falsch. vector muss bei einem Releasebuild genau so schnell sein wie ein new-Array.</p>
<p>Ist er bei mir auch:</p>
<pre><code>Vector safe: 56ms.
Vector:      40ms.
Array:      79ms.

Vector safe: 55ms.
Vector:      39ms.
Array:      39ms.

Vector safe: 54ms.
Vector:      39ms.
Array:      39ms.

Vector safe: 55ms.
Vector:      39ms.
Array:      39ms.

Vector safe: 55ms.
Vector:      39ms.
Array:      39ms.
</code></pre>
<p>Der massive Zeitunterschied zwischen at und operator[] bei dir deutet ebenfalls auf Unsinn beim compilieren hin. So teuer ist ein Rangecheck nun auch nicht, wie du an meinen Zahlen siehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226976</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 25 Jun 2012 12:11:48 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 12:30:51 GMT]]></title><description><![CDATA[<p>Das hätte ich auch erwartet.<br />
Aber <a href="http://ideone.com/X4iW3" rel="nofollow">ideone</a> sagt:</p>
<pre><code>Vector safe: 88ms.
Vector:      86ms.
Array:       85ms.

Vector safe: 88ms.
Vector:      86ms.
Array:       38ms.

Vector safe: 88ms.
Vector:      86ms.
Array:       39ms.

Vector safe: 88ms.
Vector:      86ms.
Array:       38ms.

Vector safe: 88ms.
Vector:      86ms.
Array:       38ms.
</code></pre>
<p>Was mache ich jetzt falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226982</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 25 Jun 2012 12:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 12:40:01 GMT]]></title><description><![CDATA[<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Was mache ich jetzt falsch?</p>
</blockquote>
<p>Du nimmst an, dass ideone optimieren würde. Probier mal bei dir zuhause.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226987</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 25 Jun 2012 12:40:01 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 12:59:45 GMT]]></title><description><![CDATA[<p>Das nahm ich tatsächlich an.<br />
Bei mir (MinGW 4.6.1) sind Vector und Array wieder gleichschnell - Danke.</p>
<p>Gibt es einen Grund, warum ideone nicht optimiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2226999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2226999</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 25 Jun 2012 12:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 13:53:23 GMT]]></title><description><![CDATA[<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Gibt es einen Grund, warum ideone nicht optimiert?</p>
</blockquote>
<p>Es ist eine Codeplattform, kein Rechenzentrum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227013</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 25 Jun 2012 13:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 14:03:57 GMT]]></title><description><![CDATA[<p>Bei mir ist es MinWG 4.6.2.<br />
Vorher die Werte waren ohne jede Optimierung.</p>
<p>Sobald ich den Compiler jedoch optimieren lasse (&quot;-O1&quot;) komme ich auch auf vernünftige Ergebnisse.<br />
Dankeschön an dieser Stelle nochmal.</p>
<p>TEST.txt :</p>
<pre><code>Vector safe: 30ms.
Vector:      27ms.
Array:      40ms.

Vector safe: 32ms.
Vector:      25ms.
Array:      26ms.

Vector safe: 29ms.
Vector:      25ms.
Array:      25ms.

Vector safe: 30ms.
Vector:      27ms.
Array:      25ms.

Vector safe: 31ms.
Vector:      33ms.
Array:      25ms.

Vector safe: 30ms.
Vector:      24ms.
Array:      29ms.

Vector safe: 30ms.
Vector:      26ms.
Array:      26ms.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2227018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227018</guid><dc:creator><![CDATA[frmimue]]></dc:creator><pubDate>Mon, 25 Jun 2012 14:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 14:40:26 GMT]]></title><description><![CDATA[<p>Bei GCC basierten Compilern kannst du auch gefahrlos auf <code>O2</code> gehen. Selbst <code>O3</code> macht in 99.9999% aller Fälle keine Probleme, bringt aber sehr viel. Erst <code>Ofast</code> wird manchmal kritisch was die Programmkorrektheit angeht. Gut kommt auch die Optimierung zur Linkzeit: <code>flto</code> (ist aber ein bisschen frickelig zu benutzen). Und falls es nur für einen Rechner ist, Feintuning mit <code>march</code> .</p>
<p>Du hattest noch ein paar Fragen weiter oben:</p>
<p>frmimue schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<ul>
<li>Warum return 0 aus main?</li>
</ul>
</blockquote>
<ul>
<li>Warum nicht?</li>
</ul>
</blockquote>
<p>Du zeigst damit, dass du nicht alle Feinheiten der Sprache beherrscht. Was anscheinend auch der Fall ist. Aber nun hast du eine weitere Feinheit gelernt: In main (und nur in main!) ist <code>return 0;</code> implizit, sofern die Funktion nicht explizit anders verlassen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227034</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 25 Jun 2012 14:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 15:02:49 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>frmimue schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Warum return 0 aus main?</p>
</blockquote>
<p>Warum nicht?</p>
</blockquote>
<p>Du zeigst damit, dass du nicht alle Feinheiten der Sprache beherrscht. Was anscheinend auch der Fall ist. Aber nun hast du eine weitere Feinheit gelernt: In main (und nur in main!) ist <code>return 0;</code> implizit, sofern die Funktion nicht explizit anders verlassen wird.</p>
</blockquote>
<p>Ich sehe das genau andersherum als du. Wie viele Leute hab ich bei mir an der Uni schon gesehen, die einfach bei jeder Funktion einen <code>int</code> als Rückgabetyp definieren, und nie etwas zurückgeben. Ich finde, jede Funktion, die nicht void als Rückgabetyp hat, hat eine return-Anweisung zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227048</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 25 Jun 2012 15:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Mon, 25 Jun 2012 17:57:43 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>frmimue schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<ul>
<li>Warum return 0 aus main?</li>
</ul>
</blockquote>
<ul>
<li>Warum nicht?</li>
</ul>
</blockquote>
<p>Du zeigst damit, dass du nicht alle Feinheiten der Sprache beherrscht. Was anscheinend auch der Fall ist. Aber nun hast du eine weitere Feinheit gelernt: In main (und nur in main!) ist <code>return 0;</code> implizit, sofern die Funktion nicht explizit anders verlassen wird.</p>
</blockquote>
<p>Because we can? Wirklich? Das findest du ein gutes Argument?</p>
<p>Also ob <code>main()</code> mit oder ohne <code>return 0</code> ist mMn. sowas von vollkommen egal. Ich würde es grundsätzlich eher hinschreiben, weil es mMn. kaum einen guten Grund gibt überhaupt zu wissen dass <code>return 0</code> implizit ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227114</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 25 Jun 2012 17:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to Durchlaufzeit einer Schleife on Tue, 26 Jun 2012 07:26:32 GMT]]></title><description><![CDATA[<p>Ich hätte da noch ein kleines Proble:<br />
Ist es normal, dass sich die Auflösung der chrono::high_resolution_clock verändert?<br />
Gestern hatte ich noch eine Auflösung von 1ms, aber seid heute hatte ich nur noch 15ms Auflösung, gerade eben ist es plötzlich wieder auf 1ms gesprungen.</p>
<pre><code class="language-cpp">#include &lt;chrono&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
	auto t1 = chrono::high_resolution_clock::now();
	auto t2 = chrono::high_resolution_clock::now();

	while(t1==t2) t2 = chrono::high_resolution_clock::now();

	cout &lt;&lt; chrono::duration_cast&lt;chrono::nanoseconds&gt;(t2-t1).count() &lt;&lt; &quot; ns.\n&quot;;
	cout &lt;&lt; chrono::duration_cast&lt;chrono::microseconds&gt;(t2-t1).count() &lt;&lt; &quot; us.\n&quot;;
	cout &lt;&lt; chrono::duration_cast&lt;chrono::milliseconds&gt;(t2-t1).count() &lt;&lt; &quot; ms.\n&quot;;
	cout &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2227238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227238</guid><dc:creator><![CDATA[frmimue]]></dc:creator><pubDate>Tue, 26 Jun 2012 07:26:32 GMT</pubDate></item></channel></rss>