4.高性能go语言发行版优化与落地实践

高性能go语言发行版优化与落地实践

介绍

追求极致性能

  • 性能优化是什么

    提升软件处理能力,减少不必要的消耗,充分发挥计算机算力

  • 为什么要做性能优化

    • 用户体验:带来用户体验的提升
    • 资源高效利用:降低成本,提高效率

性能优化的层面

在这里插入图片描述

  • 业务层优化
    • 针对特定场景,具体问题,具体分析
    • 容易获得较大的性能收益
  • 语言运行时优化
    • 解决更通用的性能问题
    • 考虑更多场景
    • Tradeoffs
  • 数据驱动
    • 自动性能分析工具——pprof
    • 依靠数据而非猜测
    • 首先优化最大瓶颈

性能优化与软件质量

  • 软件质量至关重要
  • 在保证接口稳定的前提下改进具体实现·测试用例:覆盖尽可能多的场景,方便回归
  • 文档:做了什么,没做什么,能达到怎样的效果
  • 隔离:通过选项控制是否开启优化
  • 可观测:必要的日志输出

在这里插入图片描述

自动内存管理

概念

  • 动态内存

    程序在运行时根据需求动态分配的内存: malloc()

  • 自动内存管理:由程序语言的运行时系统管理动态内存

    • 避免手动内存管理,专注于实现业务逻辑
    • 保证内存使用的正确性和安全性: double-free problem, use-after-free problem
  • 三个任务

    • 为新对象分配空间
    • 找到存活对象
    • 回收死亡对象的内存空间

相关概念

  • Mutator:业务线程,分配新对象,修改对象指向关系
  • Collector: GC线程,找到存活对象,回收死亡对象的内存空间Serial GC:只有一个collector
  • Parallel GC:支持多个collectors同时回收的 GC算法
  • Concurrent GC: mutator(s)和collector(s)可以同时执行
    • collectors必须感知对象指向关系的改变

在这里插入图片描述
在这里插入图片描述

Tracing garbage collection追踪垃圾回收

Generational GC

Reference couting

Go内存管理及优化

编译器和静态分析

Go编译器优化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wooovi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值