あなたが参照している他の質問に対する受け入れられた回答を書きました。その中で、このコード行への直接のポインターを提供します。
message = copy_struct(message, msize, &hp, &bp->off_heap);
これは、Erlang ランタイム システムがメッセージを送信する必要があるときに呼び出される関数内にあり、スキップされる原因となるような "if" 内にはありません。したがって、私が知る限り、答えは「はい、常にコピーされています」です。(厳密にはそうではありません。「if」はありますが、通常のコード フロー パスではなく、例外的なケースを扱っているようです。)
(Nikolaus によって持ち出されたハイブリッド ヒープ オプションは無視しています。彼は正しいように見えますが、これは通常の Erlang の構築方法ではなく、独自のペナルティがあるため、ヒープ ヒープとして検討する価値があるとは思えません。あなたの懸念に答える方法。)
ただし、10 GByte/秒をボトルネックと考えている理由はわかりません。コンピュータではレジスタや CPU キャッシュが高速化されますが、これらのメモリは小さいため、それ自体が一種のボトルネックになります。それに加えて、あなたが提案しているゼロコピーのアイデアは、マルチコアシステムでクロスCPUメッセージパッシングの場合にロックを必要とし、これもボトルネックです。この関数では、メッセージを他のプロセスのメッセージ キューにコピーするために、既にロック ペナルティが発生しています。そのプロセスがメッセージを読むようになったときに、後でもう一度支払うのはなぜですか?
要するに、それを高速化する方法についてのあなたのアイデアは、実際にはあまり役に立たないと思います。