データ型または構造アラインメント、パッキング、パディングの問題などの概念を認識しています。各ノードが約250バイト、つまり64バイトのキャッシュラインの約4倍のサイズを占める単一のリンクリストを実装しました。私のマシンはIntel64ビットアーキテクチャです。
現在、単一のリンクリストは本質的にデータ構造を追跡するポインタであるため、キャッシュミスが多数発生します。キャッシュミスを減らすために、* posix_memalign *関数を使用して各データ構造ノードを整列させ、64バイトの境界線をキャッシュしました。これで、すべてのリンクリストノードがキャッシュアラインされました。
これを行った後、リンクリストのメモリ消費量が大幅に増加し、パフォーマンスも実際に低下していることがわかりました。何がうまくいかない可能性があるのか誰かが説明できますか?