<?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[sqrt unter Linux langsamer ?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe ein merkwürdiges Problem festgestellt.<br />
Mein Programm testet die Performance von meinem Event-System.</p>
<p>Um realistische Ergebnisse zu erhalten, berechne im Callback des Events :</p>
<p>Execute:</p>
<pre><code>for ( 100 ) sqrt(x)
</code></pre>
<p>Ein Test auf AMD X2 @ 3.0 Ghz liefert nun:</p>
<p>VS2008 WinXP32: 11 Millionen Iterationen</p>
<p>Linux, gcc 4.3.2. 64bit-Build: 5 Millionen Iterationen</p>
<p>Ein Profiler liefert noch ein viel interessanteres Ergebnis :</p>
<p>VS2008: Funktion Execute ( 80% der Zeit )</p>
<p>Linux : Funktion Execute ( 95% der Zeit )</p>
<p>Es wurden jeweils mit maximalen Optimierungen kompiliert.</p>
<p>Ich programmiere schon länger unter Linux&amp;Windows und solche Unterschiede sind mir noch nie aufgefallen.</p>
<p>Mein Fazit in diesem Fall ... die SQRT-Funktion ist im gcc definitiv langsamer, der Code im allgemeinen schneller.</p>
<p>Was meint ihr dazu ?</p>
<p>Danke für seriöse Antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229268/sqrt-unter-linux-langsamer</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 02:59:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229268.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Dec 2008 17:38:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 17:38:54 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe ein merkwürdiges Problem festgestellt.<br />
Mein Programm testet die Performance von meinem Event-System.</p>
<p>Um realistische Ergebnisse zu erhalten, berechne im Callback des Events :</p>
<p>Execute:</p>
<pre><code>for ( 100 ) sqrt(x)
</code></pre>
<p>Ein Test auf AMD X2 @ 3.0 Ghz liefert nun:</p>
<p>VS2008 WinXP32: 11 Millionen Iterationen</p>
<p>Linux, gcc 4.3.2. 64bit-Build: 5 Millionen Iterationen</p>
<p>Ein Profiler liefert noch ein viel interessanteres Ergebnis :</p>
<p>VS2008: Funktion Execute ( 80% der Zeit )</p>
<p>Linux : Funktion Execute ( 95% der Zeit )</p>
<p>Es wurden jeweils mit maximalen Optimierungen kompiliert.</p>
<p>Ich programmiere schon länger unter Linux&amp;Windows und solche Unterschiede sind mir noch nie aufgefallen.</p>
<p>Mein Fazit in diesem Fall ... die SQRT-Funktion ist im gcc definitiv langsamer, der Code im allgemeinen schneller.</p>
<p>Was meint ihr dazu ?</p>
<p>Danke für seriöse Antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627773</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 09 Dec 2008 17:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 17:48:53 GMT]]></title><description><![CDATA[<p>Wenn du seriöse Antworten willst, musst du seriöse Fragen stellen. Dazu: 1) Poste bitte den echten Quellcode. 2) Falls der nicht signifikant von dem geposteten Schnipsel abweicht, wird das Ergebnis von sqrt von der Compileroptimierung als unnütz erkannt, also wird die ganze Operation weggeschmissen. 3) Du hast gcc und Visual C++ verglichen, nicht die Betriebssysteme. Dazu müsstest du gcc auf Windows als Vergleich heranziehen.</p>
<p>Zur Ursachenforschung müsste man sich mal den generierten Assemblercode ansehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627779</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 09 Dec 2008 17:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 18:03:16 GMT]]></title><description><![CDATA[<p>Das mit dem Code-Weg-Optimieren ist dem Zusammenhang schon passiert und ich habe den Compiler überlistet <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>Der Code unterscheidet sich definitiv nicht die Stelle ist wie beschreiben, den Assembler-Code habe ich mir bisher nicht angeschaut.</p>
<p>Der gcc unter Win32 ist für die Tonne, weil schlicht zu alt. Müßte dafür auf nem aktuellen Linux nen 5 Jahren alten Compiler installieren.</p>
<p>Der einzige Unterschied besteht noch im 32Bit-Build unter Windows und 64Bit unter Linux.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627793</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 09 Dec 2008 18:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 18:20:32 GMT]]></title><description><![CDATA[<p>nurf schrieb:</p>
<blockquote>
<pre><code>for ( 100 ) sqrt(x)
</code></pre>
</blockquote>
<p>nurf schrieb:</p>
<blockquote>
<p>Der Code unterscheidet sich definitiv nicht die Stelle ist wie beschreiben</p>
</blockquote>
<p>Den C++-Compiler möchte ich sehen, der den Code so frißt...</p>
<p>nurf schrieb:</p>
<blockquote>
<p>Das mit dem Code-Weg-Optimieren ist dem Zusammenhang schon passiert und ich habe den Compiler überlistet</p>
</blockquote>
<p>Wie denn?</p>
<p>nurf schrieb:</p>
<blockquote>
<p>Der gcc unter Win32 ist für die Tonne, weil schlicht zu alt. Müßte dafür auf nem aktuellen Linux nen 5 Jahren alten Compiler installieren.</p>
</blockquote>
<p>Wie bitte? Es gibt auch aktuelle gcc-Versionen für Windows. Und was hat Linux jetzt damit zu tun?</p>
<p>nurf schrieb:</p>
<blockquote>
<p>Der einzige Unterschied besteht noch im 32Bit-Build unter Windows und 64Bit unter Linux.</p>
</blockquote>
<p>Ich glaube zwar nicht, daß das der wesentliche Unterschied ist, aber ohne den Code genauer anzugucken, ist das nicht wirklich zu sagen.</p>
<p>So oder so, bei deiner Analyse des &quot;Problems&quot; liegt so einiges im Argen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627801</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Tue, 09 Dec 2008 18:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 18:54:31 GMT]]></title><description><![CDATA[<p>Zur Vollständigkeit :</p>
<pre><code>void Execute(long * iPT)
{
 // Etwas code fehlt
 long j = (*iPt);
 for (unsigned int i = 1; i &lt; 100; ++i )
 {
	(*iPt) = (long)(sqrt((double)j)) ;
 }
 (*iPt) = j;
}
</code></pre>
<p>[Ironie]Du kennst dich wahrlich gut mit dem GCC-Port und Win32 alias MingW32 aus[/Irone]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627808</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 09 Dec 2008 18:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 18:54:02 GMT]]></title><description><![CDATA[<p>Sind das jetzt beim gcc 64-Bit-Zeigeroperationen und beim VC++ nur 32 Bit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627810</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 09 Dec 2008 18:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 18:55:54 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Sind das jetzt beim gcc 64-Bit-Zeigeroperationen und beim VC++ nur 32 Bit?</p>
</blockquote>
<p>Ja, in diese Richtung habe ich auch schon überlegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627811</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 09 Dec 2008 18:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 19:14:53 GMT]]></title><description><![CDATA[<p><a href="http://www.tdragon.net/recentgcc/" rel="nofollow">http://www.tdragon.net/recentgcc/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627820</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 09 Dec 2008 19:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 21:51:06 GMT]]></title><description><![CDATA[<p>Danke .filmor,</p>
<p>werde ich zeitnah mal testen.<br />
Für Theorien bin ich auch weiterhin zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627883</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Tue, 09 Dec 2008 21:51:06 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 21:54:18 GMT]]></title><description><![CDATA[<p>nurf schrieb:</p>
<blockquote>
<p>Ja, in diese Richtung habe ich auch schon überlegt.</p>
</blockquote>
<p>Und wie wärs mit überprüfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627886</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 09 Dec 2008 21:54:18 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 22:06:02 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Sind das jetzt beim gcc 64-Bit-Zeigeroperationen und beim VC++ nur 32 Bit?</p>
</blockquote>
<p>Nicht nur das, sondern auch long hat beim gcc auf x86-64 eine Größe von 64 Bit.</p>
<p>Von daher würde ich nicht nur gcc unter Windows mal ausprobieren, sondern vor allem auch gcc unter einem 32-bittigen Linux (wahrscheinlich reicht auch schon <code>gcc -m32</code> unter dem 64-Bit Linux).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627898</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Tue, 09 Dec 2008 22:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to sqrt unter Linux langsamer ? on Tue, 09 Dec 2008 22:26:05 GMT]]></title><description><![CDATA[<p>nurf schrieb:</p>
<blockquote>
<p>Zur Vollständigkeit :</p>
<pre><code>void Execute(long * iPT)
{
 // Etwas code fehlt
 long j = (*iPt);
 for (unsigned int i = 1; i &lt; 100; ++i )
 {
	(*iPt) = (long)(sqrt((double)j)) ;
 }
 (*iPt) = j;
}
</code></pre>
<p>[Ironie]Du kennst dich wahrlich gut mit dem GCC-Port und Win32 alias MingW32 aus[/Irone]</p>
</blockquote>
<ol>
<li>Was ist dir bitte an 4.3 zu alt? Wenn du schon keine Ahnung hast welche GCC Versionen es für Windows gibt, dann bitte keine solchen Sprüche.</li>
<li>Der Code ist für die Tonne. Mach eine Schleife, summiere die Quadratwurzeln des Schleifenzählers, und gib die Zahl danach aus (printf). Für doofe:</li>
</ol>
<pre><code class="language-cpp">void foo()
{
    double v = 1;
    double accu = 0;
    for (size_t i = 0; i &lt; limit; i++) // limit darf nicht konstant sein, sonst könnte der Compiler theoretisch wieder alles wegoptimieren,
                                       // also limit als Parameter an die .exe übergeben lassen
    {
        v += 1.0;
        accu += sqrt(v);
    }
    printf(&quot;%f\n&quot;, accu);
}
</code></pre>
<ol start="3">
<li>Die FPU Einstellungen bzw. entsprechenden Compiler-Einstellungen werden hier wohl auch reinspielen.</li>
</ol>
<p>Ich will nicht behaupten dass es keinen Unterschied zwischen Linux und Windows geben kann (kann es, gibt durchaus Dinge die Linux anders machen könnte als Windows, z.B. die Default Einstellungen für die FPU), bloss ist deine Messmethode mindestens fragwürdig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627911</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 09 Dec 2008 22:26:05 GMT</pubDate></item></channel></rss>