<?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[Was ist schneller: Funktion mit Referenz Rückgabe oder ohne]]></title><description><![CDATA[<p>Hallo, ich frage mich gerade welche Funktion wohl schneller ist.<br />
Meiner Meinung nach ist f_1 schneller da dort ein Befehl weniger ausgeführt werden muss und bei f_2 wird der Inhalt der Variable erst noch extra innerhalb der Funktion im EAX Register gespeichert.</p>
<p>Oder ist f_1 vielleicht trotzdem schneller?</p>
<pre><code class="language-cpp">int&amp; f_1 ( int &amp; a )
{
        cout&lt;&lt;&quot;f_1&quot;&lt;&lt;endl; // Nur für Debug Zwecke
        return a;  // Gibt die Adresse der Variable int v ( aus int main() ) zurück
                   // mov eax,[ebp+8] ; ebp+8 = Zeigt auf Adresse von int v ( aus int main() )

}

int f_2 ( int &amp; a )
{
        cout&lt;&lt;&quot;f_2&quot;&lt;&lt;endl; // Nur für Debug Zwecke
        return a;  // Gibt den Inhalt der Variable zurück
                   // mov eax,[eax+8]
                   // mov eax,[eax]   ; eax = 10

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/307456/was-ist-schneller-funktion-mit-referenz-rückgabe-oder-ohne</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 19:01:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307456.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Aug 2012 14:22:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 14:22:48 GMT]]></title><description><![CDATA[<p>Hallo, ich frage mich gerade welche Funktion wohl schneller ist.<br />
Meiner Meinung nach ist f_1 schneller da dort ein Befehl weniger ausgeführt werden muss und bei f_2 wird der Inhalt der Variable erst noch extra innerhalb der Funktion im EAX Register gespeichert.</p>
<p>Oder ist f_1 vielleicht trotzdem schneller?</p>
<pre><code class="language-cpp">int&amp; f_1 ( int &amp; a )
{
        cout&lt;&lt;&quot;f_1&quot;&lt;&lt;endl; // Nur für Debug Zwecke
        return a;  // Gibt die Adresse der Variable int v ( aus int main() ) zurück
                   // mov eax,[ebp+8] ; ebp+8 = Zeigt auf Adresse von int v ( aus int main() )

}

int f_2 ( int &amp; a )
{
        cout&lt;&lt;&quot;f_2&quot;&lt;&lt;endl; // Nur für Debug Zwecke
        return a;  // Gibt den Inhalt der Variable zurück
                   // mov eax,[eax+8]
                   // mov eax,[eax]   ; eax = 10

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2245954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245954</guid><dc:creator><![CDATA[DerTuner]]></dc:creator><pubDate>Mon, 27 Aug 2012 14:22:48 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 14:33:54 GMT]]></title><description><![CDATA[<p>meistens gibt man ja aus der Funktion nicht das raus, was man reingesteckt hat, sondern was neues und da geht ne Referenz nicht, weil das Objekt vom Stack gelöscht wird, sobald die Funktion beendet ist.<br />
Solche Mikrooptimierungen helfen dir für gewöhnlich auch nicht weiter. Überlass das dem Compiler.</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245956</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Mon, 27 Aug 2012 14:33:54 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 14:37:58 GMT]]></title><description><![CDATA[<pre><code>void f_3(int&amp;) {
  cout &lt;&lt; &quot;f_3&quot;; // debug
}
</code></pre>
<p>Ist noch schneller.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245957</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 27 Aug 2012 14:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 14:53:00 GMT]]></title><description><![CDATA[<p>relevant: <a href="http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/" rel="nofollow">http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245959</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 27 Aug 2012 14:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 16:11:34 GMT]]></title><description><![CDATA[<p>Bei einem so primitiven Datentyp wie int ist das eh mehr ein Schritt zurück...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245974</guid><dc:creator><![CDATA[jhgasd]]></dc:creator><pubDate>Mon, 27 Aug 2012 16:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 16:15:36 GMT]]></title><description><![CDATA[<p>DerTuner schrieb:</p>
<blockquote>
<p>Hallo, ich frage mich gerade welche Funktion wohl schneller ist.<br />
Meiner Meinung nach ist f_1 schneller da dort ein Befehl weniger ausgeführt werden muss und bei f_2 wird der Inhalt der Variable erst noch extra innerhalb der Funktion im EAX Register gespeichert.</p>
</blockquote>
<p>Grundsätzlich sollte f_1 schneller sein. Faktisch werden vermutlich beide gleich schnell sein, da der Zugriff auf die Variable vermutlich schon beim Laden des Befehls in die Pipe erledigt wird, bevor der echte Kern der CPU den Befehl überhaupt zu Gesicht bekommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245976</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 27 Aug 2012 16:15:36 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 16:35:23 GMT]]></title><description><![CDATA[<p>Das ist vollkommen egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245986</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 27 Aug 2012 16:35:23 GMT</pubDate></item><item><title><![CDATA[Reply to Was ist schneller: Funktion mit Referenz Rückgabe oder ohne on Mon, 27 Aug 2012 17:35:04 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>relevant: <a href="http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/" rel="nofollow">http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/</a></p>
</blockquote>
<p>In dem Fall ist das nicht wirklich relevant.</p>
<p>@DerTuner<br />
Theoretisch ist in diesem sinnfreien Beispiel, wenn man es isoliert betrachtet, die Variante schneller die die Referenz zurückgibt. Weil sie weniger tut (ein &quot;load&quot; weniger).</p>
<p>Praktisch sollte man sich darüber keine Gedanken machen, bzw. sind Überlegungen auf dieser Ebene einfach komplett sinnfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246007</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 27 Aug 2012 17:35:04 GMT</pubDate></item></channel></rss>