Q. MSVC的优化技巧或工具
A. profiling 用 Visual Studio 本身就自带的 , C++ 语言方面实际上是差不多的 , 这个其实跟平台相关性很弱 , 主要是profiling 的工具会不一样 。Windows 下就用 Visual Studio , Linux 下会用 perf 或者是 Google perftools 这样的工具 。
Q. VTune 对于性能分析是不是个好工具或者是否有更好的推荐?
A. 如果你在 Intel 平台上工作的话 , 那我相信 VTune 应该是最好的工具吧 。
Q. STL 的效率够用吗?
A. 你打开优化的话应该是够用的;如果你不打开优化 , 那肯定不够用 。
Q. 分析 RTTI 和异常有什么好的工具和方法?
A.通过普通的性能测试就可以 。RTTI 性能取决于你的继承树的深度 , 继承层数不深的话 , 一般来讲性能问题不大 。异常确实可能性能开销比较大 。如果在不抛异常的happy path , 执行性能通常来讲是没什么问题 , 一般会有一些二进制膨胀的问题 , 但不应该会有执行性能的问题 。一旦抛了异常 , 对执行的性能影响就非常大 , 所以一般的指导原则是你抛异常的概率应该小于1% , 而且不应该是用户可以容易造成的 。比如 , 如果你网络报文不合法就抛异常 , 这基本上不可接受:因为这意味着黑客可以制造一些非法的报文 , 让你的系统性能降到原先的百分之一、千分之一 , 这显然不可接受 。所以即使在使用异常的情况下 , 也不意味着我们所有的错误处理都要用异常 。异常要用来处理真正异常的情况 。
Q. 编译选项开O3好还是O2?
A. 通常来讲是O3好 , 当然你要试验一下 , 性能问题说到底都需要测试 , 真正你要精调的话不是开O2或O3 , 至少在 GCC 下不是 , 而是要了解O2、O3分别打开那些选项 , 然后真的逐个去调这些选项 , 发现哪些选项打开是有好处的 , 哪些选项关掉更好一点 。
Q. Linux版本标准库的 malloc 是直接new 的吗?
A. 目前所有系统我了解到的标准库自带的 allocate 都是直接去new的 , 当然new之后 , malloc里会怎么做 , 那就是你 C 的运行时库的影响了 , 你到底是使用 ptmalloc , 还是jemalloc , 还是Google 的 tcmalloc , 都会带来性能上的不同影响 。用 mimalloc 也是个方法 , 反正这些额外的这些 malloc库通常来讲都会比默认的运行时库里的内存分配要好一点 , 当然一定还是要测试 。
现代C++性能优化高端培训

文章插图
- 美甲培训学校如何
- 服装设计培训 服装设计师培训学校
- 学会计 会计培训学校机构
- 英语口语培训 口语培训课程
- 影视摄影师培训学校
- 职业培训 深圳职业培训学校
- 装饰培训机构 装饰设计培训哪里好
- sigill sigikid
- 广州美容学校推荐 广州美甲培训学校地址
- 西安计算机培训机构哪个最好 西安计算机培训学校有哪些
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
