2016-09-26 2 views
0

私は、メモリをマップ/表現する最良の方法を知りたいと思います。つまり、たとえば、すべてのフィールドがシリアル化されている構造体を記述する方法です。メモリを "mangle"(表現する)最良の方法

私はクライアントとサーバーを作成するRPCライブラリを作成しています。そのため、関数のラッパーを作成して、関数のパラメータをシリアル化してデシリアライズする必要があります。

ここで、gccのマングリングタイプを使用してすべてのフィールドを識別していますが、コンパイラによってメモリアクセス時間を最適化するための穴が作成されることがあります。

DwarfDumpIDE

私は比較的簡単なシリアル化の作業のために統合することは無理だと分かったが、

答えて

1

私は直列化のために、「穀物」ライブラリー(​​)

代替を使用するには、Googleのプロトコルバッファが含まれます。

私はZeroCのICEライブラリ(https://zeroc.com/products/ice)の経験がありました。 Googleのプロトコルバッファーに似た外部コンパイルステップとして構造を特定します。良い点は、ネットワーク接続も気になる点です。

+0

私は既にCBORライブラリを使用してシリアル化しています。私は記憶を表現するだけでよい。ポインタ、char、int、double、float、longなど。gccのマングリング文字を使用しています... –

+2

@MarceloAleksandravicius:接線の注意:絶対に信頼できないデータの崩壊を試みないでください。既存のネームマングリングスキームは悪意のある使用に対して強固ではなく、既存の実装は悪用可能です。 –

+1

@MarceloAleksandraviciusあなたの質問は不明です。あなたは、問題は 'コンパイラが時々穴を作っていて、シリアライゼーションライブラリを使って解決できるということです。 – Mikhail

関連する問題