私は、memmove
とmemcpy
の違いは、メモリオーバーラップの場合はmemmove
です。私はlibgccの実装をチェックして、この記事をインテルのWebサイトから[memcpy performance]にしました。どのプラットフォームでmemmoveとmemcpyのパフォーマンスに大きな違いがありますか?
libgccでは、memmove
はmemcpy
に似ていますが、どちらも1バイトと1バイトにすぎません。したがって、最適化後もパフォーマンスはほぼ同じになるはずです。
誰かがこれを測定してこの記事を手に入れました。memcopy, memmove, and Speed over Safetymemmove
はmemcpy
より速いとは思えませんが、少なくともIntel
プラットフォームでは大きな違いはありません。それでは、プラットフォームとどのように、memcpy
で
ではなく、単にmemmove
の2似た機能を提供する理由は、何も存在しない場合、memmove
よりもかなり速くなり、バグの多くにつながることができます。
編集:私はmemmoveとmemcpyの違いを尋ねていません。私はmemmoveが重複の問題を処理できることを知っています。問題は、memcpyがmemmoveよりも速いプラットフォームが本当にあるかどうかです。
私はよく覚えている場合のメモリアドレスに –
質問の多くは、すでに上ありの重複に関連するいくつかの問題があります'memcpy'と' memmove'(右側の「関連する」バーを参照)。あなたの質問はまだそれらのいずれかで覆われていないと確信していますか? –
標準は**インテルのプラットフォームに関する** **ではありません。 –