摘要:
优化 代码优化 识别出性能瓶颈点 循环优化 算法优化 减少函数调用 内存管理 并发和多线程 代码重构 编译器优化 缓存优化 内存缓存 分布式缓存 浏览器缓存 cdn缓存 缓存粒度控制 缓存失效策略 缓存预热 缓存一致性 异步优化 非阻塞操作 提高资源利用率 多线程优化 线程管理 同步机制 线程池 任 阅读全文
摘要:
为什么需要复杂均衡: 分流 业务拆分导致的分布式环境 解决单点故障 5大负载均衡策略 轮询 加权轮询(轮询时比其它节点轮到的概率高一点) hash ip(解决session不能跨域,同一客户端一直发送到同一服务器) 分配给较小连接数的pod hash url(适合给url做缓存使用) 阅读全文
摘要:
https://mp.weixin.qq.com/s/RUQXIyN95hvi2wM3CyPI9w 阅读全文
摘要:
链接:> https://mp.weixin.qq.com/s/OWuP66WxpciBAgm2mptUxw 阅读全文
摘要:
#性能调优攻略 - 测试:两个关键指标:吞吐量,延迟 - 测试之后,定位性能瓶颈 ### 查看操作系统负载 看看操作系统的CPU利用率,看看内存使用率,看看操作系统的IO,还有网络的IO,网络链接数,等等 比如linux系统:top命令 1. 如果cpu利用率不高,但是两个关键指标上不去了, 阅读全文
摘要:
IM 实时性 发展: 短轮询: 缺点:无脑消耗资源,因为有的时候并没用新的数据产生 优点:技术和维护简单 长轮询: 优点:降低了服务器请求负载,实时性有所提升,因为是主动等 缺点:1. 在等待消息的过程中服务器需要开启消息查询线程,仍然存在无用功 2. 实时性还存在不足:在轮询结束和下一次轮询发起之 阅读全文
摘要:
cpu缓存分为L1cache,L2cache,L3cache L1为每个cpu独有缓存,L3为几个cpu的共有缓存,所以内存大小L3也是最大相应的L1,L2,L3速度也是由快到慢 cpu cache从内存读取数据的单位是缓存块(Cache Line),大小取决于coherency_line_size 阅读全文
摘要:
如何正确停止线程? 停止线程应该是一种通知协作的方式,比如interrupt,但是它仅仅是通知线程,线程拥有完全的自主权,根据自身业务来判断什么时候停止,因为如果选择立即停止就可能导致数据不完整这种问题 在休眠状态的线程是否可以感应到中断 可以,程序会抛出一个异常 为什么用 volatile 标记位 阅读全文
摘要:
属性:公平,互斥,可重入(业务涉及不多) 可使用redis,zookeeper,etcd实现 redis实现: 一般追求高性能使用redis redis采用单线程架构,可以保证单个命令的原子性,但是无法保证一组命令在高并发场景下的原子性(引入lua脚本) 注意点: 独占排他:setnx 防死锁: r 阅读全文
摘要:
回溯问题 三种情况 每种情况都有子集,组合,排列三种题型 无重复元素不可复选 //子集问题 static List<List<Integer>> res=new LinkedList<>(); static LinkedList<Integer> track=new LinkedList<>(); 阅读全文