- 博客(4)
- 收藏
- 关注
转载 伪共享解释与试验方法
什么是伪共享缓存系统中是以缓存行(cache line)为单位存储的。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。缓存行上的写竞争是运行在SMP系统中并行线程实现可伸缩性最重要的限制因素。有人将伪共享描述成无声的性能杀手,因为从代码中很难看清楚是否会出现伪共享。为了让可伸缩性与线程数呈线性关系,就必须确保不会有两个线程往同一个变量或缓存行中写。两个线程写
2020-08-22 20:56:03
326
原创 cpu1级缓存的缓存一致性协议试验方法
内存 缓存行 cpu 1级缓存的缓存一致性协议试验方法package com.dlx.cpu.cache;public class CacheLinePadding { public static volatile long[] arr = new long[2]; public static void main(String[] args) throws Exception { Thread t1 = new Thread(()->{
2020-08-22 20:40:03
271
1
转载 浅谈命令查询职责分离(CQRS)模式
转自:http://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起...
2018-10-25 12:00:22
357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人