→ galic: you got it 11/23 15:56
→ ptt0720: 謝謝大大 11/23 16:16
推 alan23273850: 推 11/23 19:05
→ tcn1john: 新手發問: 請問陣列記憶體位置互換會有效能問題嗎? 11/23 20:39
→ jerryh001: 陣列的元素"位置"不是可以交換的東西 11/23 20:43
推 tcn1john: 弄懂了...是直接寫入,不是互換位置,感謝回覆 11/23 20:44
推 CaptainH: xor交換其實是比正常swap慢的 11/24 10:18
→ CaptainH: 因為正常swap只要三次賦值,xor交換還有額外三次xor運 11/24 10:19
→ CaptainH: 算 11/24 10:19
推 CaptainH: 總之是語義有歧義,執行有風險,無法一般化,速度反而慢 11/24 10:22
→ CaptainH: 的做法 11/24 10:22
推 alan23273850: 所以沒事不要用奇技淫巧 11/24 10:44
→ galic: 但從pipeline CPU角度來看 Execute跟Write-back本來就不同 11/24 11:16
→ galic: stage 所以樓上C大說的理由不太完整.... 11/24 11:16
→ galic: 以前的ISA是真的有特殊理由去刻意使用XOR,但這都是歷史了 11/24 11:17
→ galic: 從現在的角度來看 XOR Swap的缺點主要是 可讀性 以及編譯器 11/24 11:17
→ galic: 是否能理解XOR Swap,然後優化成合適的指令 11/24 11:17
→ galic: 然後提一下,從計組的觀點,目前XOR Swap的缺點應該是 11/24 11:18
→ galic: XOR必須經過運算才能得知結果 這會影響硬體能做的優化 11/24 11:19
→ galic: 像是Branch Prediciton和Speculative Excution之類的 11/24 11:21
→ galic: 所以這年頭使用適當的演算法跟資料結構 其他交給編譯器就好 11/24 11:26
→ Lipraxde: 這樣換就省了點RAM看起來帥而已 11/24 13:39