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. 虚拟内存模拟无限物理内存,读写磁盘文件到内存耗时较高;此外程序访问的内存比较分散时可能出现页抖动,减低了性能
  • 相关阅读:
    Navicat Premium_11.2.7简体中文版 破解版本 windows版本 失效
    php多维数组排序 3
    php 多维数组排序
    php对二维数组排序
    mysql子查询批量找id最大的
    教你如何选择相机的曝光模式(转)
    3分钟搞懂曝光直方图(转)
    摄影新手最想知道的10件事(转)
    教你搞懂光圈大小的成像差异(转)
    新手必须掌握的20个摄影构图法 转
  • 原文地址:https://www.cnblogs.com/haomiao/p/11647422.html
Copyright © 2011-2022 走看看