>>590
他の方々はそのような特殊な使い方のみを前提としていない比較だと思いますが、その特殊な場合で比較してみましょう。
前後の要素へポインタを移すために、ptr++とptr--だけで済むのは配列やvectorです。
実際には最大アドレスまたは最小アドレスとの比較も必要ですが、この値もレジスタに持っておくので、比較と増減で2サイクルで済みます。
一方でlinked listの場合、前後の要素へポインタを移すためには、ptr = ptr->nextとptr = ptr->prevそして0との比較になります。
キャシュがヒットしなかったとして、メインメモリから読み出すとすると、100~数百サイクルかかります。
もちろんキャッシュに乗ればマシになりますが、linked listは予想ができません。
このようにポインタの移動だけでも、メモリアクセスが生じるlinked listは非常に不利です。
各要素の内容自体の読み込みは、どちらも同じなりそうですが、少しだけ違ってきます。
vectorならば次々とシーケンシャル読み出しとなり、確実にL1キャッシュに乗りますので、読み出しは4クロック程度で済みます。
linked listはnext/prevを読み出すときに多大なコストを払っているので、内容自体の読み込みはキャッシュに乗ってるでしょう。
しかし、キャッシュに乗ってもnext/prevのサイズ分だけ早くキャッシュから外れるため、やや不利となります。
したがって、前後の要素へのポインタの移動でも、要素の内容読み出しでも、vectorが速くなり、linked listは遅くなります。
探検
結局C++とRustってどっちが良いの? 2traits
■ このスレッドは過去ログ倉庫に格納されています
591デフォルトの名無しさん
2023/04/26(水) 06:31:44.27ID:nP514kb2■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★4 [樽悶★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★2 [Hitzeschleier★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★4 [お断り★]
- 中国が水産物の輸入停止、首相答弁撤回を要求…中国共産党機関紙「輸入停止は一つのシグナルにすぎない」 [ぐれ★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- 【日中激突】高市、完全にナメられる!中国、さらに報復を示唆。尖閣など領海に入られても大して外交的抗議してこなかった結果なのか [219241683]
- 有識者「今は円安辛いかもしれない。しかし、この痛みを乗り越えた先に豊かな日本と強い円が待っている」 [237216734]
- 今年の牡蠣(カキ)、ガチで終わる、広島の牡蠣の9割がとつぜん死滅して終わる [329329848]
- 🍣にゃっはろ🌸~スシろ~🏡
- 中国人観光客のキャンセル率、ついに7割越えwwwwwwwwwwwwwwww [329329848]
- 🏡PUNCHマッチ💥🥊😅🥊💥超重量級決戦🏡
