作者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/cn.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