<?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[memcpy vs. xxx]]></title><description><![CDATA[<p>Ich frage mich schon eine ganze Weile, wie man am besten x-Dimensionale Arrays kopieren solle. empfielt sich memcpy oder ist es alter C Kram? Is es das gleiche, wie wenn ich mit Schleifen den Inhalt kopiere?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149013/memcpy-vs-xxx</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 02:32:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149013.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Jun 2006 12:06:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 12:06:25 GMT]]></title><description><![CDATA[<p>Ich frage mich schon eine ganze Weile, wie man am besten x-Dimensionale Arrays kopieren solle. empfielt sich memcpy oder ist es alter C Kram? Is es das gleiche, wie wenn ich mit Schleifen den Inhalt kopiere?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069504</guid><dc:creator><![CDATA[Tc++H]]></dc:creator><pubDate>Thu, 01 Jun 2006 12:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 12:58:41 GMT]]></title><description><![CDATA[<p>memcpy ist viel schneller als eine selbstgebaute for-Schleife da es Assembler-&quot;Tricks&quot; benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069568</guid><dc:creator><![CDATA[~~~~~~~~]]></dc:creator><pubDate>Thu, 01 Jun 2006 12:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 13:18:22 GMT]]></title><description><![CDATA[<p>nach dem was ich <a href="http://danny.thisismyblog.org/archives/8-memcpy-optimieren.html" rel="nofollow">hier</a> gelesen habe, lohnt es sich als Speed-Junkie <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="😉"
    /> schon, mal ne eigene implementierung zu starten und paar tests zu fahren. der c++ weg ist aber wahrscheinlich eher, eine iterator unterstützende multi-dim-array klasse und copy zu benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069577</guid><dc:creator><![CDATA[winheis]]></dc:creator><pubDate>Thu, 01 Jun 2006 13:18:22 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 13:54:37 GMT]]></title><description><![CDATA[<p>Also wenn es sich um reine POD handelt, dann kann man memcpy einsetzen, aber sobald man komplexere Klassen benutzt, müssen auf jeden Fall eigene Kopierfunktionen benutzt werden (d.h. Copy-Konstruktor bzw. Assignment-Operator bei der eigenen Klasse implementieren!).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069607</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 01 Jun 2006 13:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 15:38:18 GMT]]></title><description><![CDATA[<p>Mir geht es hauptsächlich darum, den Copykonstruktor von einer &quot;Image class&quot; zu beschleunigen. Was steht überhaut in der memcpy in asm drinne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069676</guid><dc:creator><![CDATA[Tc++H]]></dc:creator><pubDate>Thu, 01 Jun 2006 15:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 15:45:50 GMT]]></title><description><![CDATA[<p>Mal als Beispiel</p>
<pre><code>Func@   memcpy, _EXPFUNC, _RTLENTRY, &lt;pointer dest&gt;,&lt;pointer src&gt;,&lt;int n&gt;

        Link@   esi,edi
        mov     edi,dest        ; get dest
        mov     eax,edi         ; copy to eax for return value
        mov     esi,src
        mov     ecx,n
        mov     edx,ecx         ; save count
        shr     ecx,1           ; calculate longword count
        shr     ecx,1
        cld
        rep     movsd           ; copy longwords
        mov     ecx,edx         ; get back count
        and     ecx,3           ; calculate remainder byte count (0-3)
        rep     movsb           ; copy remaining bytes
        Unlink@ esi,edi
        Return@

EndFunc@ memcpy
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1069682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069682</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 01 Jun 2006 15:45:50 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 16:05:09 GMT]]></title><description><![CDATA[<p>thx, kann ich das jetzt in einen inline asm Block setzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069696</guid><dc:creator><![CDATA[Tc++H]]></dc:creator><pubDate>Thu, 01 Jun 2006 16:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 18:12:48 GMT]]></title><description><![CDATA[<p>Tc++H schrieb:</p>
<blockquote>
<p>thx, kann ich das jetzt in einen inline asm Block setzen?</p>
</blockquote>
<p>was sollte das bringen? wenn du memcpy schreibst, weiss der compiler wenigstens, was du willst, und kann das ganze evtl. noch optimieren (gerade bei einem copy-ctor kennt der compiler die alignment-voraussetzungen der operanden). zudem gibst du unnötig wartbarkeit und portabilität auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069752</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 01 Jun 2006 18:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy vs. xxx on Thu, 01 Jun 2006 20:59:50 GMT]]></title><description><![CDATA[<p>Tc++H schrieb:</p>
<blockquote>
<p>Mir geht es hauptsächlich darum, den Copykonstruktor von einer &quot;Image class&quot; zu beschleunigen. Was steht überhaut in der memcpy in asm drinne?</p>
</blockquote>
<p>Nichts was man hier posten könnte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
memcpy ist eine Funktion, die idR von Compilern intrinsic implementiert wird. Dh, der Compiler &quot;erzeugt&quot; den Code für die Funktion erst, wenn er die entsprechende Stelle übersetzt. Das Ergebns des Codes hängt dann von den begleitenden Umständen ab, wie zB Alignment oder verwendeten Registern. Man kann so eine intrinsic Funktion auch wie eine in den Compiler eingebaute inline Funktion betrachten. Früher hat man versucht, solche simplen Funktionen selbst zu schreiben, um zB die Vorteile von CPU Befehlserweiterungen zu nutzen. Heute macht das keinen Sinn mehr, da moderne Compiler ausreichend Optionen für solche Erweiterungen anbieten und diese dann auch entsprechend nutzen. Mach dir also nicht erst die Mühe, so eine Funktion selbst zu schreiben. Du wirst dadurch sehr wahrscheinlich nichts gewinnen. Benutze einfach memcpy, und gut ist.<br />
Ansonsten, was die Optimierung deines ctors betrifft, falls deine Elemente PODs sind und plain gespeichert werden, kannst du memcpy benutzen. Etwas schnelleres wirst du kaum finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069801</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 01 Jun 2006 20:59:50 GMT</pubDate></item></channel></rss>