系统健康与分析

内存

  • 明确目标
    • 用对比参照物(同类产品)
    • 量化目标(要优化多少)
    • 经验(可能存在的问题)
  • 获取数据
    • 从整体到部分
      • 系统级别total
      • 应用级别PSS,USS
      • 应用内级别smaps
        • Java-Heap
        • Native-Heap
        • Other-Modules
    • Tools
      • SystemAPI
        • proc
        • smaps
      • Jhat
      • MAT
  • 定位问题
    • DS-5
    • DependOn Data
  • 给出方法
    • PageShared
    • DirtyPage
    • 精简结构

性能

  • AIM
    • Compare
    • The feature
  • Data
    • Profile
  • SolveLevel
    • Strategy
      • Algorithm
      • DataStructure
    • Language
      • LanguageFeature
      • Hotpoint
    • Hardware
      • RAM
        • Cached
        • loop
      • ROM
  • Solve

思想

  • 具体问题具体分析
  • 明确目标
  • 数据说话
  • 前人经验
  • Thought
    • 究竟要优化什么?在一开始,你就应该清楚地了解你要达到的效果,以及其他优化相关的各种问题。
    • 选择一个正确的优化指标: 将最多的努力投入到运行消耗时间最多的那部分代码中. 需要注意的是,如果你轻易选择了一个很容易达到的指标,这作用不大,因为没有真正解决问题。你有必要选择一个更复杂的、更接近你的目标的指标。
    • 优化在刀刃上: 找到项目中与你的目标(性能、资源或其他)相背的地方,并将你的努力和时间用在那里。 不要分心于容易实现的问题
    • 优化层次越高越好: 根据这个标准,最好的优化是找到一个更有效的算法。
    • 不要过早优化: 你应该将项目开发和优化当作两个独立的步骤来做
    • 依赖性能分析,而不是直觉: 性能分析数据应该是第一位的,最后才是直觉。
    • 优化不是万金油: 你无法优化一切,甚至无法同时优化两个问题

tags: SystemOptimize

具体方法

  • 展开循环
  • 消除数据相关性
  • 数据并行处理
  • 优化引用数据结构
  • 减小数据结构的尺寸
  • DRAM板块上的数据分布策略
  • 规划数据流
  • 按字节、双字与四字进行内存处理
  • 数据对齐
  • 内存访问与计算的组合
  • 读写操作的组合
  • 只在必要时才访问内存
  • 内置C内存处理函数的优化
  • 内存处理函数的优化质量
  • C字符串库函数的优化
  • 字符串处理函数的质量优化
  • 块处理算法的优化
  • 大型数组排序的优化


创建@

2012-12-09

最后修改@

2014-01-03

标签/Tags

相同类目/Categories