开发、测试java程序时,尽可能使用-server(win上)选项,其他平台使用类似选项,启用JIT优化

标签: 开发 测试 java | 发表时间:2012-02-22 18:36 | 作者:
出处:http://www.iteye.com

如下粗心的代码

 

 

public class Visibility {
	private  static boolean stop;
	
	public static void main(String[] args) throws Exception {
		new Thread(new Runnable(){
			public void run() {
				int i = 0;
				while(!stop) {
					i++;
				}
				System.out.println("finish loop,i=" + i);
			}
		}).start();
		
		
		Thread.sleep(1000);
		stop = true;
		Thread.sleep(2000);
		System.out.println("finish main");
	}
}

 

 

 

在-client模式下会很快结束,测试不出问题

 

但通过java -server Visibility来运行(win上),就会死循环

 

 

 

所以,为避免程序(尤其是多线程的)运行在与开发环境不同的jvm上因内存可见性、指令重排序等带来的诸如活性问题,开发、测试时应尽可能始终启用JIT优化,尽早发现问题。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [开发 测试 java] 推荐:

Java 单元测试利器之 Junit

- - 博客园_首页
          因为工作和学习的需要,在代码中查错的时候,第一步就是想知道这个错误具体发生在一个位置,进行一个准确的定位. 而这个定位的工作交给谁来做了呢. 不难猜出也就是这篇博客的主题---Junit. junit是一个开源的框架,也是java这一块的测试工具之一. 想了解详细请上官网,下面用代码来跟大家解释.

准确的java程序性能测试

- - ITeye博客
原创文章,转载请指明出处: http://aub.iteye.com/blog/2124974 , 尊重他人即尊重自己. 1.避免垃圾回收对结果造成的误差. 方案一:JVM启动时使用-verbose:gc观察垃圾回收动作,确认整个测试期间垃圾回收根本不会执行. 方案二:运行足够的次数和时间,这样测试程序能够充分的反应出运行期间分配与垃圾回收的开销(推荐).

Java多线程程序的测试

- - 四火的唠叨
这个问题最初来自于一封公司内部的话题探讨邮件,再加上了一些我的理解. 首先,需要明确的是,用Java通常构建多线程安全的程序“非常”困难,如果还没有体会到“非常”的话,阅读《Java Concurrency in Practice》(中文名叫做《Java并发编程实战》,在我的 书单里面,我认为它基本是最好的系统介绍Java并发的书了)可能可以改变你的看法.

java代码开发规范

- - BlogJava_首页
格式规范:                                                                      .       1、TAB空格的数量. 编辑器上的TAB空格数量统一取值为4.       2、换行, 每行120字符.       3、if语句的嵌套层数3层以内   .

Apache Thrift - java开发详解

- - 编程语言 - ITeye博客
2、编写IDL文件 Hello.thrift. 4、编写实现类、实现Hello.Iface:. 5、编写服务端,发布(阻塞式IO + 多线程处理)服务.      * 阻塞式、多线程处理 .             //设置传输通道,普通通道  .             //使用高密度二进制协议  .

开发、测试java程序时,尽可能使用-server(win上)选项,其他平台使用类似选项,启用JIT优化

- - ITeye博客
在-client模式下会很快结束,测试不出问题. 但通过java -server Visibility来运行(win上),就会死循环. 所以,为避免程序(尤其是多线程的)运行在与开发环境不同的jvm上因内存可见性、指令重排序等带来的诸如活性问题,开发、测试时应尽可能始终启用JIT优化,尽早发现问题.

Java 开发 2.0: 使用 Gretty 的超轻量级 Java Web 服务

- 圣斌 - IBM developerWorks 中国 : 文档库
Gretty 是构建 Web 服务超轻量级框架的新学派之一. 构建于极快的 Java NIO API 之上,Gretty 将 Groovy 用作 Web 端点和 Grape 的 Maven 式依赖关系管理的一种域特定语言. 本文介绍如何开始使用 Gretty 来构建和部署 Java Web 服务应用程序.

java web开发 高并发处理

- - 企业架构 - ITeye博客
java web开发 高并发处理. java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据). 一:高并发高负载类网站关注点之数据库. 没错,首先是数据库,这是大多数应用所面临的首个SPOF. 尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.

iText 5.4.0 发布,Java 的 PDF 开发包

- - 开源中国社区最新新闻
iText 5.4.0 除了修复很多 bug 之外,主要是侧重于创建结构化的 PDF 文档,当使用 Document, Paragraph, PdfPTable 创建 PDF 时可自动进行标识,标识的 PDF 是更好支持 PDF/UA 和 PDF/A 兼容性的第一步. iText是一个非常著名的能够快速产生PDF文件的Java类库.

Java开发十大必备网站

- - ITeye资讯频道
以下是收集的10个Java开发相关的网站,这些网站质量都很好,它们提供了业界信息以及一些很棒的讲座, 还能解答常见开发过程中遇到的问题、面试问题等. Stackoverflow.com 可能是编程界中最流行的网站了,该网站有成千上万个好问题和答案. 学习API或者编程语言,通常依赖于代码示例,stackoverflow就可以提供大量的代码片段.