• 读书笔记《C++性能优化指南》(1)


    软件优化的必要性;
    1. 优化为软件开发的一部分
    2. 优化是高效的且可持续的
    3. 软件的活力、生命周期的延续
    
    改善代码性能的一些策略:
    1. 使用更好的编译器以及编译选项
    2. 使用最优算法
    3. 使用更好的库并用好库
    4. 减少内存分配和复制操作
    5. 移除不必要的计算操作,优化热点代码
    6. 使用最优的数据结构
    7. 提高并发性以更快地处理
    8. 优化内存管理
    
    影响优化的计算机的行为;
    1. C++中的执行语句、执行顺序不一定是顺序的,编译器可能会重排执行指令,另外并发也会导致执行顺序的进一步复杂化
    2. volatile变量、std::atomic特性等都由操作系统来隐藏实现的
    3. 计算机的内存操作,如读写其实是比较慢的且并不是以字节为单位访问的,而是一大块的数据读写的以补偿内存操作慢的问题,
       此外内存未对齐的字节(不在同一个字)访问耗时是字节在同一个字中时的两倍多
    4. 除了读大块数据外,内存还有多级高速缓存来弥补(尤其是频繁访问的内存地址),紧挨的指令或数据结构如数组等更容易放入缓存(链表或树则会比较慢对缓存作用帮助不大,可能会更慢)
    5. 字节序的问题,大端和小端模式
    6. 虚拟内存模拟无限物理内存,读写磁盘文件到内存耗时较高;此外程序访问的内存比较分散时可能出现页抖动,减低了性能
  • 相关阅读:
    深圳和上海
    肖舸的“畅销门”和“卓越门”
    一件小事引发的辞职——团队里的Y君
    同洲、宇龙手机源代码之争
    《过得去》
    评肖舸之《0bug一书给谁带来了奶酪?》
    《观止》点滴
    webgame 地图加载(论坛摘录)
    分块加载(转)
    45度游戏的另类深度排序(copyPixels)
  • 原文地址:https://www.cnblogs.com/haomiao/p/11647422.html
Copyright © 2020-2023  润新知