大きなファイル (数十 GB) で 128 ビットのレコードをソートしています。アルゴリズムは正常に動作し、現在uint64_t
、これらのうちの 2 つを 1 つのレコードとして使用しています。これは、最新の 64 ビット システム上にあります。
コードを読みやすくするためtypedef struct u128t {uint64_t hi, uint64_t} u128t
に、2 つの 64 ビット レコードの代わりに create a struct like を使用できるかどうか疑問に思っています。これにより、配列のインデックス付けと割り当てがより明確になりますが、コンパレータ関数を実装する必要があります。
これは移植可能なソリューションですか? 元の実装と同じ速度で実行できると期待できますか?
参考文献:
- http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html - 128 ビット システム用
- http://en.wikipedia.org/wiki/C_data_types - c タイプ
- C で構造体を構造体にコピーする- 構造体をコピーする