zoukankan      html  css  js  c++  java
  • 读书笔记《C++性能优化指南》(1)

    软件优化的必要性;
    1. 优化为软件开发的一部分
    2. 优化是高效的且可持续的
    3. 软件的活力、生命周期的延续
    
    改善代码性能的一些策略:
    1. 使用更好的编译器以及编译选项
    2. 使用最优算法
    3. 使用更好的库并用好库
    4. 减少内存分配和复制操作
    5. 移除不必要的计算操作,优化热点代码
    6. 使用最优的数据结构
    7. 提高并发性以更快地处理
    8. 优化内存管理
    
    影响优化的计算机的行为;
    1. C++中的执行语句、执行顺序不一定是顺序的,编译器可能会重排执行指令,另外并发也会导致执行顺序的进一步复杂化
    2. volatile变量、std::atomic特性等都由操作系统来隐藏实现的
    3. 计算机的内存操作,如读写其实是比较慢的且并不是以字节为单位访问的,而是一大块的数据读写的以补偿内存操作慢的问题,
       此外内存未对齐的字节(不在同一个字)访问耗时是字节在同一个字中时的两倍多
    4. 除了读大块数据外,内存还有多级高速缓存来弥补(尤其是频繁访问的内存地址),紧挨的指令或数据结构如数组等更容易放入缓存(链表或树则会比较慢对缓存作用帮助不大,可能会更慢)
    5. 字节序的问题,大端和小端模式
    6. 虚拟内存模拟无限物理内存,读写磁盘文件到内存耗时较高;此外程序访问的内存比较分散时可能出现页抖动,减低了性能
  • 相关阅读:
    解决NLPIR汉语分词系统init failed问题
    牛客小白月赛3---G 旅游(树形dp)
    蓝桥杯 能量项链 (区间dp)
    OpenJ_Bailian
    LeetCode#169 Majority Element
    LeetCode#171 Excel Sheet Column Number
    LeetCode#172 Factorial Trailing Zeroes
    this指针
    auto、register、extern以及static
    const与static
  • 原文地址:https://www.cnblogs.com/haomiao/p/11647422.html
Copyright © 2011-2022 走看看