[問題] 再問 *(取值) 與 copy assign的效率呢!?

看板C_and_CPP (C/C++)作者 (emeth)時間16年前 (2009/12/18 21:37), 編輯推噓8(8020)
留言28則, 9人參與, 最新討論串1/2 (看更多)
A *a = *iter; if(a) { a->... } 或是 if(*iter) { (*iter)->.... } 先取值 記錄起來再運算 跟直接取值 哪個有效率 假設 是上面這種 一個是取值一次 copy一次 一種是 取值兩次 哪種比較有效率 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.187.134

12/18 21:44, , 1F
compiler 最佳化之後應該不會差很多吧, 是說為什麼要比這裡
12/18 21:44, 1F

12/18 21:44, , 2F
這是你效率的瓶頸處嗎?
12/18 21:44, 2F

12/18 21:46, , 3F
就說Disasm出來自己看組語有沒有差嘛....~_~
12/18 21:46, 3F

12/18 21:50, , 4F
只是想知道有沒有所謂的最好而已~~!!
12/18 21:50, 4F

12/18 22:01, , 5F
所以到底去disasm了沒阿...XD
12/18 22:01, 5F

12/18 22:02, , 6F
無視技能倒是練得很純熟
12/18 22:02, 6F

12/18 22:29, , 7F
現在還沒空 disasm啦 晚點我會再試試看低 謝謝哩~!!
12/18 22:29, 7F

12/18 22:30, , 8F
你還可以Disasm Debug build與Release build的版本,
12/18 22:30, 8F

12/18 22:31, , 9F
比較看看兩者, 你才知道哪些效能最佳化是你需要注意的,
12/18 22:31, 9F

12/18 22:32, , 10F
哪些是現在的compiler比你還聰明的, 就你目前考慮過
12/18 22:32, 10F

12/18 22:32, , 11F
的範圍裡來說....XD
12/18 22:32, 11F

12/18 22:48, , 12F
最佳化後的程式,在別台電腦上不一定可以正常執行=_=!
12/18 22:48, 12F

12/18 22:49, , 13F
我說的最佳化是直接用編譯器的release產生…
12/18 22:49, 13F

12/18 22:55, , 14F
target platform有符合, 對應的library/dll都正確, 使用
12/18 22:55, 14F

12/18 22:55, , 15F
特殊硬體支援的需求也滿足, 理論上應該要正常執行吧?_?
12/18 22:55, 15F

12/18 23:12, , 16F
語意上沒有差別吧
12/18 23:12, 16F

12/18 23:13, , 17F
除非比較的是instance aggregation跟reference aggregation
12/18 23:13, 17F

12/18 23:13, , 18F
你看不看的懂`disasm`這個字...?
12/18 23:13, 18F

12/18 23:23, , 19F
有google過了 大概是反編譯的意思吧
12/18 23:23, 19F

12/18 23:23, , 20F
網路上有些程式可以下載使用~~
12/18 23:23, 20F

12/18 23:28, , 21F
寫支驗證小程式,編譯時加上產生asm code的參數就好了啊
12/18 23:28, 21F

12/18 23:43, , 22F
我忘了原po沒說環境, 如果是VC的話, 在main的開始先設個
12/18 23:43, 22F

12/18 23:44, , 23F
break point或設在你想檢查的地方, VC的Debug window裡
12/18 23:44, 23F

12/18 23:45, , 24F
就有一個是Disasm了, 可以在組語層級step by step:)
12/18 23:45, 24F

12/18 23:49, , 25F
同時也有相應的source code顯示, 比較容易做對照@_@"
12/18 23:49, 25F

12/18 23:56, , 26F
給 johnhmj, 若不是對應 dll 放錯, 那就是程式寫壞了(100%)
12/18 23:56, 26F

12/19 02:33, , 27F
原來如此啊 謝謝V大~!!
12/19 02:33, 27F

12/19 09:38, , 28F
反編譯跟反組譯不太一樣吧 囧
12/19 09:38, 28F
文章代碼(AID): #1BAuMCDW (C_and_CPP)
文章代碼(AID): #1BAuMCDW (C_and_CPP)