[問題] LeetCode要手動優化嗎?

看板C_and_CPP (C/C++)作者 (Sidney0503)時間9年前 (2017/02/04 10:45), 編輯推噓4(404)
留言8則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) leetcode 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) leetcode C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) leetcode 預設 問題(Question): 根據我對編譯器的了解 function中若有區域變數被回傳(ex:參數 函數內宣告) 編譯器會對此狀況做優化 但是我手賤 return std::move(output); 結果變快了 wtf 前幾名的是直接寫asm在C++裡面嗎XD 餵入的資料(Input): leetcode預設 預期的正確結果(Expected Output): 變慢 錯誤結果(Wrong Output): 變快不少 從4x%衝到7x% 程式碼(Code):(請善用置底文網頁, 記得排版) 試了幾題都是這樣 return補上std::move都會變快 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.250.43 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1486176314.A.CD8.html

02/04 11:35, , 1F
純推不用。蠻有趣的 ㄎㄎ
02/04 11:35, 1F

02/04 12:24, , 2F
你可以 Google "Return value optimization"
02/04 12:24, 2F

02/04 13:04, , 3F
有沒有做最佳化只能看產生的組合語言
02/04 13:04, 3F

02/04 14:05, , 4F
可能compile參數沒開最佳化
02/04 14:05, 4F

02/05 00:31, , 5F
不用 在演算法上面改進比較有用
02/05 00:31, 5F

02/07 09:36, , 6F
有時候多測幾次速度也不太一樣
02/07 09:36, 6F

02/09 17:28, , 7F
return 補上move會變快要看情況
02/09 17:28, 7F

04/22 01:17, , 8F
可能因為move 不用make a copy 所以變快
04/22 01:17, 8F
文章代碼(AID): #1ObK0wpO (C_and_CPP)
文章代碼(AID): #1ObK0wpO (C_and_CPP)