<?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[Performance: Get-Metode vs. Direkt Member Zugriff??]]></title><description><![CDATA[<p>hallo</p>
<p>ihr ich hab ein Array und möchte da zugreifen nun gibt es eine entscheidungsproblem:</p>
<p>1. Get/Set elengater und Information-Hiding vorteil aber evtl langsam (oder?)<br />
2. direkt zugriff auf puplic Member schneller (oder?)</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/167808/performance-get-metode-vs-direkt-member-zugriff</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 02:22:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167808.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Dec 2006 09:11:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:11:13 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>ihr ich hab ein Array und möchte da zugreifen nun gibt es eine entscheidungsproblem:</p>
<p>1. Get/Set elengater und Information-Hiding vorteil aber evtl langsam (oder?)<br />
2. direkt zugriff auf puplic Member schneller (oder?)</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192217</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:14:49 GMT]]></title><description><![CDATA[<p>Wenn der getter inline ist (und das sollte er vermutlich sein, da er nur das Array zruückgibt), ist kein Performance-Unterschied vorhanden. Und selbst wenn der getter das nicht ist, wird dieser Funktionsaufruf deinem Programm nicht das Genick brechen (außer dein Programm besteht nur aus einer Schleife, die diese Funktion aufruft^^).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192221</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:16:21 GMT]]></title><description><![CDATA[<p>Get/Set kannst du idR als Inline-Funktion schreiben, dann optimiert der Compiler die Funktionsaufrufe direkt heraus (und die Geschwindigkeit beider Ansätze wird (fast) gleich sein). Ich würde auf jeden Fall lieber Get/Set-Methoden verwenden - da habe ich die Kontrolle, wer was mit meiner Klasse macht (über public Member kann der Anwender viel kaputtmachen, ohne daß du dort eingreifen kannst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192222</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:16:21 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:31:11 GMT]]></title><description><![CDATA[<p>naja ich hab ein berechne algorithum , welcher auf perfomance aus ist , und der greift auf elemen von array zu ! es sind rel. viele zugriffe bei eienr berechnung .. deswegen frag ich:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192241</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:31:11 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:36:53 GMT]]></title><description><![CDATA[<p>Wenn Du Dir darüber Gedanken machst kannst Du auch eine Referenz halten <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="😉"
    /> (wenn es viele sequentielle Zugriffe sind sieht das sogar schöner aus)</p>
<pre><code class="language-cpp">MyArray const&amp; daten = objekt.GetDaten();
/* ... */ daten[i] /* ... */ daten[i+1] /* ... */ daten[i-1] /* ... */
</code></pre>
<p>im Vergleich zu</p>
<pre><code class="language-cpp">/* ... */ objekt.GetDaten()[i] /* ... */ objekt.GetDaten()[i+1] /* ... */ objekt.GetDaten()[i-1] /* ... */
</code></pre>
<p>In einer Schleife, in der nur pro Durchlauf einmal auf das Array zugegriffen wird, ist das natürlich weniger optisch hilfreich als vielmehr zur Reduzierung Deiner (unbegründeten, wenn inline) Performance-Sorge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192247</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 09:39:27 GMT]]></title><description><![CDATA[<p>Ich weiß nicht, was alle immer mit Performance haben. Schreibt doch einfach den Code. Ganz normal, ohne dass man sich schon über Optimierungen den Kopf zerbricht. Dann lässt man den Code mal durchlaufen und macht Laufzeittests. Ist er schon jetzt schnell genug, hab ich mir 'ne Menge unnötige Optimierungen gespart, die vermutlich eh negative Auswirkungen gehabt hätten und kann mich anderen Dingen widmen.</p>
<p>Ist der Code jedoch zu langsam, schaue ich genau, was den Code langsam macht. Vllt. sind es die Funktionsaufrufe, vllt. ist es die Datenstruktur, vllt. nur eine bestimmte Operation auf die Datenstruktur, vllt. ist aber auch der Algo scheiße.<br />
Wenn ich dann weiß, was genau bremst, kann ich anfangen Optimierungen durchzuführen, die wirklich einen Effekt haben.</p>
<p>Wir wissen ja, was Hoare zu dem Thema sagt: &quot;Der frühe Vogel fängt den Wurm&quot; ... äh, na ja. Eigentlich: &quot;Zu frühe Optimierung ist die Wurzel allen Übels.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192249</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Fri, 15 Dec 2006 09:39:27 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 10:10:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6287">@GPC</a>; Der Code ist schon voll Funktionfähig... jetzt wo das Programm fertig ist .. mach ich mir noch bischen gedanken über optimierungen... Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192287</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 10:28:21 GMT]]></title><description><![CDATA[<p>Um es ganz klar auszudrücken: Member-Variablen mache ich immer private. Wenn ich lesenden Zugriff benötige, gibt es eine getter-Methode, die in der Regel inline ist und bei schreibenden Zugriff eine setter-Methode.</p>
<p>Eine Getter darf aber auch keine Referenzen oder Zeiger (ausser const) auf interne Strukturen liefern. Ein Zeiger auf ein Array zu liefern (auch ein const-Zeiger) verbietet sich, da dieses eine bestimmte Implementierung voraussetzen würde.</p>
<p>Inline Getter sind genauso schnell, wie direkte Zugriffe. Selbst wenn ich im Getter noch z. B. eine Index-Variable mitgebe, optimiert der Compiler das raus.</p>
<p>Benötige ich das gesamte Array zur Verarbeitung, ist zu überlegen, ob die Verarbeitungsmethode nicht in die Klasse selbst gehört.</p>
<p>Es gibt nur sehr selten in C++ den Bedarf, aus Performancegründen etwas unsauber zu implementieren. Genau dafür schätze ich C++.</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192298</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 10:39:01 GMT]]></title><description><![CDATA[<p>Warum schreibt ihr eigentlich immer was von inline? Jeder vernünftige Compiler sollte so schlau sein, und Member-Funktionen die nur ein return x oder x = y haben, autom. inline machen. Darueber mache ich mir absolut keine Gedanke. Muesste ich dieses tun, wuerde ich meinen Compiler wegschmeissen!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192310</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 10:42:22 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Warum schreibt ihr eigentlich immer was von inline?</p>
</blockquote>
<p>Ich nahm an, dass die Methode im Header gleich definiert wurde, ergo implizit inline. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192313</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 10:43:39 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Warum schreibt ihr eigentlich immer was von inline? Jeder vernünftige Compiler sollte so schlau sein, und Member-Funktionen die nur ein return x oder x = y haben, autom. inline machen. Darueber mache ich mir absolut keine Gedanke. Muesste ich dieses tun, wuerde ich meinen Compiler wegschmeissen!!!</p>
</blockquote>
<p>Sollte <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="😉"
    /> (und meistens entscheidet der Compiler sowieso selber, was er inlinet)<br />
Aber es gibt Situationen, wo selbst ein einfaches &quot;return irgendwas&quot; nicht mehr inline aufgelöst werden kann (z.B. bei virtuellen Funktionen oder wenn du die Definiton in eine eigene Übersetzungseinheit auslagerst), deshalb sollte man solche Getter/Setter schon inline-tauglich anlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192316</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 11:09:32 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6287">@GPC</a>; Der Code ist schon voll Funktionfähig... jetzt wo das Programm fertig ist .. mach ich mir noch bischen gedanken über optimierungen... Grüße</p>
</blockquote>
<p>Falscher Ansatz. Keine &quot;Gedanken&quot; über Optimierung machen, sondern:</p>
<p>- Profiler laufen lassen<br />
- Bottlenecks identifizieren.<br />
- diese dann gezielt optmieren<br />
- Mit Profiler prüfen ob die Optimierung auch gegriffen hat (vorher/nachher vergleich)</p>
<p>Alles andere fällt unter den Begriff &quot;premature optimizing&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192345</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:09:32 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 11:18:03 GMT]]></title><description><![CDATA[<p>ich versteh nich profiler , bottlenecks... höäää?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192358</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 11:21:10 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Profiler" rel="nofollow">Wikipedia: Profiler</a><br />
<a href="http://de.wikipedia.org/wiki/Flaschenhals" rel="nofollow">Wikipedia: Flaschenhals</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192361</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Performance: Get-Metode vs. Direkt Member Zugriff?? on Fri, 15 Dec 2006 11:47:51 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Artchi schrieb:</p>
<blockquote>
<p>Warum schreibt ihr eigentlich immer was von inline? Jeder vernünftige Compiler sollte so schlau sein, und Member-Funktionen die nur ein return x oder x = y haben, autom. inline machen. Darueber mache ich mir absolut keine Gedanke. Muesste ich dieses tun, wuerde ich meinen Compiler wegschmeissen!!!</p>
</blockquote>
<p>Sollte <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="😉"
    /> (und meistens entscheidet der Compiler sowieso selber, was er inlinet)<br />
Aber es gibt Situationen, wo selbst ein einfaches &quot;return irgendwas&quot; nicht mehr inline aufgelöst werden kann (z.B. bei virtuellen Funktionen oder wenn du die Definiton in eine eigene Übersetzungseinheit auslagerst), deshalb sollte man solche Getter/Setter schon inline-tauglich anlegen.</p>
</blockquote>
<p>Dem möchte ich mich anschliessen. Ich verwende fast nie das Wort &quot;inline&quot;, sondern achte darauf, wie ich meine Methoden schreibe, damit der Compiler eine Chance hat, das zu optimieren. &quot;inline-tauglich&quot; ist das richtige Stichwort. Die Implementieriung einfacher Getter oder Setter gehören in den Header. Damit gebe ich dem Compiler die Informationen, die er benötigt. Man sollte das durchaus im Hinterkopf behalten, wenn man Code schreibt.</p>
<p>Aber wirklich nur im Hinterkopf. Nicht das aus so einer Nebensache dann die Hauptsache wird. Beim Programmieren sollte man sich in erster Linie auf das Problem konzentrieren und nicht auf die Optimierung.</p>
<p>Tntnet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192383</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:47:51 GMT</pubDate></item></channel></rss>