
性能优化之路
性能优化
Sun_ltyy
这个作者很懒,什么都没留下…
展开
-
CPU缓存架构原理剖析与相关优化
一、cpu架构二、cpu从内存加载数据的流程程序运行时从内存加载数据,先从离核心最近的一级缓存读取,如果有数据就直接返回,逐层读取,如果三级缓存中都没有数据,就会从内存中加载一段连续的内存数据,一次加载数据的大小根据cacheline配置的大小,一般为64字节,并将加载的数据依次放入缓存中。linux系统可以通过以下命令查看三、cpu的三级缓存、内存读取效率 以2.2Ghz频率的CPU为例,每个时钟周期大概是0.5纳秒 L1缓存分为两部分:数据缓存和指...原创 2020-11-04 22:06:51 · 435 阅读 · 1 评论 -
性能优化篇_锁的正确选型
为什么要有锁:锁是在多线程并发环境中,保证处理数据不会出错的一种快捷解决办法。锁选择不当带来的影响:在高并发环境下,如果锁的选取不当,直接带来的影响是,系统的吞吐量上不去,高并发成为空谈。一、锁的分类在底层实现上来讲,锁一共分为两类:互斥锁和自旋锁。其他上层锁都是根据底层的这两类锁来实现的。互斥锁:加锁成本比较高,是在内核态完成的,要经过两次上下文切换,第一次是加锁失败后线程进入休眠释放cpu资源,第二次是等锁释放后,通知失败线程获取锁恢复执行。一次上下文切换的时间大概在几纳秒或者几十...原创 2020-11-12 18:57:33 · 251 阅读 · 0 评论 -
一次线上机器load负载过高报警问题排查及其后续处理
问题来源:从3.14号开始陆续收到线上一台机器的负载过高报警 问题排查 : 于是对gc、堆内存、load负载、cpu使用情况等进行了统计分析。 gc时间图标 堆内存使用情况:load负载 cpu使用率 通关以上对gc的统计,堆内存的使用情况,负载和cpu使用率的统计,我们不难发现其实在发生报警的时间范围内,不论是gc、堆内存、load负载还是cpu使用情况都是有一个 上升区然后到原创 2016-03-26 14:11:19 · 3971 阅读 · 1 评论 -
性能调优之磁盘文件读写与网络传输
引子:我们在读取磁盘文件,并经过网络传输时,我们能不假思索的用到如下代码。private void sendFile(String filePath) { try { //1.从磁盘读取文件 File file = new File(filePath); DataInputStream dis = new DataInputStream(new FileInputStream(filePath));原创 2020-11-10 22:22:29 · 1157 阅读 · 2 评论 -
性能调优-内存分配策略
提升内存池的分配效率,和cpu缓存一样都是比较底层的性能优化方法。在现在分布式集群应用的情况下,如果能从底层出发,很小粒度的性能提升,在分布式环境多集群的规模放大下,都将带来成倍的性能优化提升下面带大家一步步了解内存池相关的知识。一、应用请求分配内存的流程 应用代码申请内存时,先在应用内存池内申请,如果有足够可用空间直接返回,否则从C库内存池中申请内存资源,当C库内存池没有足够的内存空间时,才会从OS申请内存资源。 当应用向C库内存池申请1kb的内存空间时,C...原创 2020-11-10 09:25:08 · 400 阅读 · 0 评论