かなり大きな、約 100 GB のメモリのチャンクを割り当てています。正確なサイズは、コンパイル時に常にわかります。
静的に割り当てる必要がありますか?
static char data[DATA_SIZE];
またはmmapを使用していますか?
data = mmap(NULL, DATA_SIZE, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE|MAP_LOCKED|MAP_UNINITIALIZED, -1, 0)
前者では、アプリケーション (起動時間を無視) がわずかに高速に実行されているように見えます。
失敗した割り当てを無視すると、各アプローチの長所と短所は何ですか?