- 浏览: 60264 次
- 性别:
- 来自: 杭州
最新评论
-
chenzhenyang:
您好,您的《高级分布式系统设计课程》在哪里可以接触到呢
对CQRS模式的澄清 -
wenxin45445:
最近也在学习jvm,对上面说的一条规则是大对象直接进入老年代, ...
jvm对大对象分配内存的特殊处理 -
cuqing:
fei33423 写道"所以,如果我们不在操作时同步 ...
对CQRS模式的澄清 -
fei33423:
"所以,如果我们不在操作时同步返回错误信息(假设命令 ...
对CQRS模式的澄清 -
fei33423:
1. 事件溯源 命令模式 术语 最好不要翻译,或者 斜体 带上 ...
CQRS——命令与查询职责分离【翻译】
文章列表
CQRS
翻译自大牛Martin Fowler的CQRS。原文地址:http://martinfowler.com/bliki/CQRS.html
==================================================================
CQRS代表着命令查询责任分离。我第一次听到这个模式是从Greg Young那里。这个模式的核心就是你在更 ...
最近看到Udi Dahan博客里关于CQRS的一篇文章(clarified-cqrs),感觉阐述的很详细。自己花了三个晚上把它翻译了一遍,感觉收获颇多。在争得作者同意后,我将其发布出来,供大家一起交流。
原文地址:http://www.ud ...
前段日子在和leader交流技术的时候,偶然听到jvm在分配内存空间给大对象时,如果young区空间不足会直接在old区切一块过去。对于这个结论很好奇,也比较怀疑,所以就上网搜了下,发现还真有这么回事。以下给出具体代码来说明:
首先定义好jvm内存各个区域的大小。我设定的是eden区8M,from和to各1M,old区10M,总共20M的空间,参数如下:
-Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8
紧接着,开始写程序。很简单,就是初始化一个9M的程序,然后用jstat命令看jdk的内存使用情况。
public c ...
今天修改了配置文件中的一个配置项值,将原先的url连接中加入了一个&source=upload,结果在应用启动的时候报错了。错误栈如下:
Caused by: org.xml.sax.SAXParseException: The reference to entity "test" must end with the ';' delimiter.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at o ...
最近在做应用的性能优化,在review代码的过程中积累了一些规则和经验。做到这些规则的目的很简单,就是写出“优美”的代码来。
1、注释尽可能全面
对于方法的注释应该包含详细的入参和结果说明,有异常抛出的 ...
通常来说关于jvm对于对象的内存分配,只要到堆内分配一般就over了,但是在很多人的博客或者帖子中又说了一些其他的分配,比如栈内分配等等,搞的自己有点眼晕,索性就将jvm内存分配的方式统统查了一遍,然后总体上 ...
翻mina的源代码的时候,在NioProcessor里面居然看到这么个方法:
@Override
protected int read(NioSession session, IoBuffer buf) throws Exception {
ByteChannel channel = session.getChannel();
return session.getChannel().read(buf.buf());
}
也不知道这哥们咋想的,设置一个channel的引用,然后让它在那里闲的没事干。 ...
jvm中的内存可以分为堆内存和非堆内存,其中堆内存用于存储虚拟机运行中产生的各种对象,而通常所说的GC也就是针对这一块内存而言的。作为开发者,我们并不需要去关心到底什么时候该调用GC去清理内存,因为jvm会帮我们打理好这一块。但是如果想深入了解java内存管理,就不得不关心下这块对程序员“透明”的区域了。
要了解GC过程,首先要说说堆内存是怎么工作的。java所创建的对象会都放在堆内存中,但随着新对象的逐渐加入,堆内存的剩余空间会越来越少。当无法给一个新的对象继续分配内存空间时,程序就会发生out of memory。我们知道,java程序员在编写时无需关心何时释放对象的内存,所以会有相 ...