![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 74
coderplay
这个作者很懒,什么都没留下…
展开
-
警惕使用jvm参数CMSRefProcTaskProxy
昨天中午的时候, 团队的兄弟找我看一个现象: 原先因为堆外内存使用过多会crash掉的java应用, 设置了最大堆外内存量(MaxDirectMemorySize)后jvm不会crash, 但出现了机器的两颗CPU全部被占满, 而且java程序没有响应的情况. 我用jstat -gc/-gcutil/-gccause查了一下当时gc的情况, 发现出现过CMS GC, 最后一次导...原创 2012-10-31 10:19:41 · 237 阅读 · 0 评论 -
从Java视角理解CPU上下文切换(Context Switch)
从Java视角理解系统结构连载, 关注我的微博([url="http://weibo.com/coderplay"]链接[/url])了解最新动态 在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常...原创 2012-04-11 15:35:18 · 218 阅读 · 0 评论 -
从Java视角理解CPU缓存(CPU Cache)
从Java视角理解系统结构连载, 关注我的微博([url="http://weibo.com/coderplay"]链接[/url])了解最新动态 众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内...原创 2012-04-14 21:54:41 · 187 阅读 · 0 评论 -
从Java视角理解伪共享(False Sharing)
从Java视角理解系统结构连载, 关注我的微博([url="http://weibo.com/coderplay"]链接[/url])了解最新动态 从我的[url="http://coderplay.iteye.com/blog/1485760"]前一篇博文[/url]中, 我们知道了CPU缓存及缓存行的概念, 同时用一个例子说明了编写单线程Java代码时应该注意的问题. 下面我们讨论更为...原创 2012-04-19 18:34:49 · 244 阅读 · 0 评论 -
文件在使用FileChannel.map后不能被删除(Windows上)
同事发现在Windows上使用FileChannel的map方法之后, 不能够删除掉文件. 我在Linux上试了一下, 发现没这个问题。 做个笔记, 记录一下. [code="java"] import java.io.File; import java.io.RandomAccessFile; import java.lang.reflect.Method; import java....原创 2013-01-06 18:07:24 · 845 阅读 · 0 评论