1

ストレージ上の特定のサイズにデータを調整することには利点がありますか?たとえば、情報を格納するために1バイトまたは4バイトを使用するオプションがある場合、どちらが推奨されますか(ストレージサイズは重要ではなく、最適化のみ)?

この質問をするのは主に、メモリ内の値について考える場合に「重要」であることがわかっているためです(したがって、たとえば、このサイトの別の質問のように、.NETブール値が4バイトである理由)。

それは問題ではないと思いますが、私は.NET Framework(具体的にはC#)を使用しています。

4

1 に答える 1

1

ファイル内の特定のレコードにアクセスできるようにする必要がある場合は、ある種のインデックスまたは固定のレコード サイズが必要になりますが、それはレコードの個々の部分ではなく、レコード全体に対するものです。通常、ストレージ内の 4 バイトまたは 8 バイトの境界にデータを配置するために、それほど長い時間はかかりません。もちろん、メモリ内の整列された場所に一度にレコードを読み取ると、変換を実行するために整列されたデータになります...したがって、すべてがある程度絡み合ってしまう可能性がありますが、変換は変換の頻繁なアクセスではなく、1 回限りの可能性が高いです。

もちろん、ストレージサイズは最適化にとって重要です-ディスクから読み取るデータが少ないほど、多く読み取るよりも安価になるためです(一般的に...)。

固定レコード サイズなどの特定の要件がない限り、できるだけ使いやすいようにストレージを設計しようと思います。パフォーマンスに関して特定の懸念がある場合は、それらのプロファイルを作成する必要があります。たとえば、 UTF-16 を使用して文字列をエンコードする方が、UTF-8 よりも効率的である可能性があります。これは、エンコードとデコードに必要な作業が少なくて済むためです... より多くのスペースが必要になりますが. ただし、仮定を立てるのではなく、これらをテストする必要があります。どこからストレージ フォーマットをロードするかによって、大きな違いが生じることに注意してください。ネットワーク経由、メカニカル ディスク、ソリッド ステート ドライブなどです。すべての場合で最速です。

于 2011-10-01T07:39:13.610 に答える