他の人が無料でダウンロードできるように、ネットワークにブロードキャストしたいデータ構造があります。このデータ構造には、他のネットワーク参加者も実行しているプログラムで使用される、より複雑なデータ構造に関する情報が保持されます。
このデータをエンコードして、ネットワーク経由で送信する際のオーバーヘッドを削減するにはどうすればよいですか?
たとえば、「完全な」データ構造は次のようになります。
fullData = array(
0 => array(1, 2, 3, 4, 77, 6),
1 => array(89, 2, 3, 4, 5, 6),
2 => array(1, 2, 3, 4, 5, 6),
3 => array(102, 22, 16, 4, 5, 6),
4 => array(1, 2, 55, 4, 5, 27)...
...などなど。
私がブロードキャストしているデータは、基本的にこの配列内の「重要な」データのインデックスになります。そのため、ネットワーク上の「軽量」ノードは、重要な情報を探すためにギガバイトのデータを解析する必要はありません。私の「マスター」プログラムはそれを行います。彼らのために。ただし、「重要な」データをネットワークに報告する必要があるため、次のような配列をエンコードすることを考えています。
importantData = array(
0 => array(4),
1 => array(0),
3 => array(0, 1, 2),
4 => array(2, 5)...
...などなど。
JSON はこのデータをエンコードして送信する良い方法ですか? 別のパラメータがディスク容量または CPU サイクルの範囲でよりコストがかかる場合を除き (私のサーバーと他のノード上で)、転送コストをできるだけ節約したいと考えています。この問題に正しい方法で取り組んでいることを確認するにはどうすればよいですか?