作者Sidney0503 (Sidney0503)
看板C_and_CPP
標題[問題] LeetCode要手動優化嗎?
時間Sat Feb 4 10:45:11 2017
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1486176314.A.CD8.html
1F:推 Neisseria: 純推不用。蠻有趣的 ㄎㄎ 02/04 11:35
2F:推 LPH66: 你可以 Google "Return value optimization" 02/04 12:24
3F:→ descent: 有沒有做最佳化只能看產生的組合語言 02/04 13:04
4F:→ jaid: 可能compile參數沒開最佳化 02/04 14:05
5F:→ wawi2: 不用 在演算法上面改進比較有用 02/05 00:31
6F:推 storm654321: 有時候多測幾次速度也不太一樣 02/07 09:36
7F:→ bluesoul: return 補上move會變快要看情況 02/09 17:28
8F:推 shaopin: 可能因為move 不用make a copy 所以變快 04/22 01:17