Performance
iteye_15896
这个作者很懒,什么都没留下…
展开
-
Performance step 1 - setup target app
我准备从performance的角度出发,发掘一个JavaEE系统中的设计问题。第一步就要构建一个目标系统,用来压力测试。 [b]第一步准备考验我的DB功底[/b] 平台准备用mysql+jdbc构建一个大数据量DB。测试数据库以及sql的与性能相关的设计。 1. 首先安装mysql server 2. 创建sample db 3. 创建一张新闻表 news [code="ja...原创 2011-02-19 23:13:58 · 89 阅读 · 0 评论 -
如何进行Java EE性能测试与调优
[b]性能测试的目标[/b] 性能测试不同于功能测试,不是对与错的检验,而是快与慢的衡量。在进行真正的性能测试之前要先搞清楚目标: 1. 在确定的硬件条件下,可以支持的并发数越大越好,响应时间越快越好。具体需要达到的并发数是多大,要求的响应时间是多快,由产品经理来提出。 2. 在确定的硬件条件下,测试得到最大并发数和相应的响应时间之后。如果增加硬件投入,可以得到怎样的性能提升回报...2012-03-24 20:51:27 · 92 阅读 · 0 评论 -
Java 并发编程 - Programming Concurrency on the JVM
这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不考虑性能的问题,经过这几个月的工作,发现从性能和扩展性的角度去看软件开发,还真是大不一样。在和朋友聊天的时候,提及Java程序是否能充分利用多核cpu的问题的时候,朋友给我推荐了这本书《Programming Concurrency on the JVM》。几天看下来,还真觉得很应景,建议做Java开发的朋友试着阅读一下。我简单记录下我...2012-03-24 23:08:33 · 176 阅读 · 0 评论 -
关于 sun.misc.Unsafe
今天在看java.util.concurrent.atomic包的源代码的时候看到原来这个包的底层都调用了sun.misc.Unsafe这个类,这个类其实是个native的实现类,他的神奇之处就在于它可以直接访问内存地址。如果你能直接调用它,那么就意味着你可以绕开一切lock而直接操作地址,虽然危险却有相当的性能吸引力。( 源代码 ) 它十分高效,因为它的实现基于CAS (Compare An...2012-04-03 15:31:59 · 123 阅读 · 0 评论 -
JVisualVM还真是不错
最近再看Java 性能的问题。一直都习惯使用Jconsole和Jstack。今天偶然发现一个更好的东东JVisualVM。这个工具功能更强大而且有很多插件可以扩展,相信后面插件会越来越丰富。 如此一来一些简单的profiling和monitoring需求都可以满足了,而不必使用JProfile和YourKit了。 JVisualVM是JDK自带的一个使用工具。如果你的path里面包含java的...2012-04-27 21:38:35 · 150 阅读 · 0 评论 -
关于Hashtable和HashMap, Vector和ArrayList
在功能上讲Hashtable和HashMap, Vector和ArrayList有着几乎相同的功能。他们的主要区别在于: Hashtable和HashMap的区别,先看put方法的源代码 Hashtable [code="java"] public synchronized V put(K key, V value) { // Make sure the value is not nu...2012-05-01 09:41:01 · 148 阅读 · 0 评论 -
Spring 事务在多线程环境下的传播
有时候需要使用多线程来提高对于CPU,尤其是多核CPU的利用率,来提高性能。Spring的bean一般都是无状态的,单例的。所以也就是线程安全的。那么对于声明式的事务,在多线程环境下又是怎么处理的呢? 看看下面的例子: [code="java"] ClassA.java @Transactional public void methodA(){ Execut...2012-05-04 21:42:16 · 2602 阅读 · 0 评论