掘友等级
获得徽章 0
CPU 缓存分为数据缓存与指令缓存,对于数据缓存,我们应在循环体中尽量操作同一块内存上的数据,由于缓存是根据 CPU Cache Line 批量操作数据的,所以顺序地操作连续内存数据时也有性能提升。
对于指令缓存,有规律的条件分支能够让 CPU 的分支预测发挥作用,进一步提升执行效率。对于多核系统,如果进程的缓存命中率非常高,则可以考虑绑定 CPU 来提升缓存命中率。 RPC动态分组
我们使用逻辑分组进行流量隔离,然而某些分组的服务使用方流量突增时,紧急扩容一来不够及时二来麻烦,此时我们可以通过注册中心的控制台动态修改已有分组,进行替换或者追加,曲线求国的方式增加了服务使用方的可使用节点列表。
变量的使用
1、变量太多,容易淹没主干逻辑。如果很多变量间有联系或者会产生协作,应该使用一个方法专门管理它们。
2、变量含义过大,容易导致处理结果缺乏阶段性。
3、随意玩弄变量的作用域,容易增加不确定性。比如把变量的创建和赋值分别由两个不同方法实现。 日记记录
1、当对不同模块包采用不同配置时,需要注意覆盖问题,避免重复打印日记。
2、异步记录日记时,我们要避免产生内存溢出和日记丢失。所以要注意异步队列是有界还是无界的,假如是前者,队列空间用完后,服务会阻塞等待还是直接抛弃记录。 RPC定时处理
处理请求超时任务、启动超时、心跳探测都可以利用时间轮机制完成。时间轮模拟生活中的时钟,它只会轮循第一层时间槽的任务,当遍历完成后才将更高层的任务重新分布到第一层,然后重新遍历。这样遍历时就不会额外遍历其他暂时不会执行到的槽,避免浪费CPU能力。
RPC定时处理
处理请求超时任务、启动超时、心跳探测都可以利用时间轮机制完成。时间轮模拟生活中的时钟,它只会轮循第一层时间槽的任务,当遍历完成后才将更高层的任务重新分布到第一层,然后重新遍历。这样遍历时就不会额外遍历其他暂时不会执行到的槽,避免浪费CPU能力。
定时处理
处理请求超时任务、启动超时、心跳探测都可以利用时间轮机制完成。时间轮模拟生活中的时钟,它只会轮循第一层时间槽的任务,当遍历完成后才将更高层的任务重新分布到第一层,然后重新遍历。这样遍历时就不会额外遍历其他暂时不会执行到的槽,避免浪费CPU能力。
下一页