09 2022 档案
摘要:一、对象创建流程与内存分配 1、创建对象 2、堆的内存分配方式 堆的内存分配方式有指针碰撞和空闲列表两种方式: 指针碰撞:内存是连续的,年轻代使用,使用该种分配方式的垃圾回收器:Serial和ParNew收集器 空闲列表:内存地址不连续,老年代使用,使用该种分配方式的垃圾回收器:CMS和Mark-S
阅读全文
摘要:一、线程加锁 Go 语言不仅仅提供基于 CSP 的通讯模型,也支持基于共享内存的多线程数据访问,其提供了Sync包来支持。 Sync 包提供了锁的基本原语 sync.Mutex 互斥锁:Lock()加锁,Unlock()解锁 sync.RWMutex 读写分离锁:不限制并发读,只限制并发写和并发读写
阅读全文
摘要:一、Go语言的由来和特性 Less is exponentially more – Rob Pike, Go Designer Do Less, Enable More – Russ Cox, Go Tech Lead 1、为什么需要 Go 语言 其他编程语言的弊端 硬件发展速度远远超过软件 C 语
阅读全文
摘要:一、梯度压测 (一)压测配置 梯度压测主要是用来分析接口性能瓶颈,主要的四种性能指标:响应时间、并发用户数、吞吐量、资源使用率。它们之间存在一定的相关性,共同反映出性能的不同方面。 压测接口(http://IP:9001/spu/goods/10000005620800):响应时间20ms,响应数据
阅读全文
摘要:一、应用性能问题分析方法论 性能优化的终极目标:用户体验 = 产品设计(非技术) + 系统性能 ≈ 系统性能 = 快 应用性能调优是个大工程,包括指标、和影响因素。 指标可以从web端(首屏时间、白屏时间、可交互时间、完全加载时间...)、移动端(端到端响应时间、Crash率、内存使用率、FPS(每
阅读全文