Linux_性能优化_1.性能优化概述(perf)

目录:

优化

系统级优化

如何做优化?

1、任务调度带来任务切换的开销
perf性能检测工具的安装 栈空间速度比堆空间快的原因 例:线程池
2、系统调用带来用户态和内核切换的开销
3、代码级别优化
热点函数,文件收集 性能优化工具




优化

1. 算法优化,选择优秀的数据结构和算法。

2. 代码优化,提高执行速度,减少内存占用。



系统级优化

更加有效地利用硬件和操作系统资源

  • 上下文切换次数评估 —> 降低OS开销
  • 缺页异常次数评估 —> 减少页面交换
  • IPC 评估 —> 提高CPU利用率



如何做优化?

对症下药:系统性能瓶颈在哪里?

提高cpu使用效率。做更多计算任务


1、任务调度带来任务切换的开销

避免不必要的上下文切换

引起上下文切换的原因:

  • 时间片用完,CPU正常调度下一个任务

  • 被其他优先级更高的任务抢占

  • 执行任务碰到IO阻塞,调度器挂起当前任务,切换执行下一个任务

  • 用户代码主动挂起当前任务让出CPU时间( pthread_cond_wait )

  • 多任务抢占资源,由于没有抢到被挂起(mutex )
    (加锁的粒度要细化)

  • 硬件中断/软中断

perf性能检测工具


perf性能检测工具的安装

   sudo apt install linux-tools-common
   
   sudo apt install linuex-tools-4.15***-generic
   
   sudo apt install linux-tools-generic

输入sudo perf stat ls,执行ls命令,收集特定进程的性能概况,

[yola2626@ubuntu ~]$sudo perf stat ls

//ls执行的打印...

 Performance counter stats for 'ls':

// 任务真正占用的处理器时间,单位为 ms。
              0.94 msec task-clock                #    0.309 CPUs utilized //CPU 的占用率。  
// 程序在运行过程中上下文的切换次数      
                21      context-switches          #    0.022
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值