`
aubdiy
  • 浏览: 697445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

准确的java程序性能测试

    博客分类:
  • Java
阅读更多

原创文章,转载请指明出处:http://aub.iteye.com/blog/2124974, 尊重他人即尊重自己

1.避免垃圾回收对结果造成的误差

方案一:JVM启动时使用-verbose:gc观察垃圾回收动作,确认整个测试期间垃圾回收根本不会执行

方案二:运行足够的次数和时间,这样测试程序能够充分的反应出运行期间分配与垃圾回收的开销(推荐)。

2.避免动态编译对结果造成的误差

方案一:让测试程序长时间运行,让编译过程和解释执行仅仅占总体运行时间的一小部分。

方案二:让测试代码“热身”,充分的执行,这样开始计时前,代码已经被编译了(JVM启动时使用-xx:PrintCompilation观察是否有编译动作)。

 

下面是一个多线程性能测试的例子:

package self.study;

import java.util.concurrent.CountDownLatch;

public class TestHarness {

	public static void main(String[] args) throws InterruptedException {

		TestHarness testHarness = new TestHarness();

		long timeTasks = testHarness.timeTasks(10, new Runnable() {

			@Override
			public void run() {
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}

		});
		System.out.println(timeTasks);
	}


	public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
		//预热,编译
		for (int i = 0; i < 10000; i++) {
			task.run();
		}
		
		// 真正的测试
		final CountDownLatch startGate = new CountDownLatch(1);
		final CountDownLatch endGate = new CountDownLatch(nThreads);
		for (int i = 0; i < nThreads; i++) {
			Thread t = new Thread() {
				@Override
				public void run() {
					try {
						startGate.await();
						try {

							task.run();
						} finally {
							endGate.countDown();
						}
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			};
			t.start();
		}
		long start = System.currentTimeMillis();
		startGate.countDown();
		endGate.await();
		long end = System.currentTimeMillis();
		return end - start;
	}
}

 

 

1
0
分享到:
评论

相关推荐

    《Java程序性能优化》(葛一鸣)PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于Java程序性能优化的书籍,作者是葛一鸣,并提供了该书PDF版本的下载链接。虽然没有具体的书籍内容,但基于标题、描述以及通常这类书籍会涉及的主题,我们可以总结出...

    Java程序性能优化 让你的Java程序更快、更稳定附本书示例代码(清晰版)

    Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效稳定的Java程序能够显著提升用户体验,降低服务器资源消耗。这本书“Java程序性能优化 让你的Java程序更快、更稳定”提供了深入的...

    Java程序性能相当的好

    Java程序性能优化是开发者在构建高效、稳定应用时必须关注的重要方面。Java作为一种跨平台的编程语言,其性能可以通过多种手段进行提升,包括但不限于代码优化、JVM参数调优、垃圾回收机制理解以及并发处理等。 ...

    java服务程序性能测试总结

    【Java服务程序性能测试总结】 在软件开发过程中,性能测试是一项至关重要的环节,尤其是在Java服务程序的场景下,确保服务程序能承受高并发负载并保持高效稳定运行是开发者的重要任务。以下是对整个性能测试过程的...

    Java程序性能优化.葛一鸣.2012.10.第1版

    《Java程序性能优化》是葛一鸣在2012年10月出版的第一版专著,这本书深入探讨了如何提升Java应用程序的运行效率和性能。在Java开发中,性能优化是一个关键领域,它涉及到代码的高效编写、内存管理、线程调度、数据库...

    Java程序优化与数据竞争检测的研究.pdf

    本文对Java程序性能测试的研究结果表明,JPDA平台可以有效地检测Java程序的性能,提高测试的准确性和稳定性。因此,在现代Java软件性能测试中,JPDA平台的应用范围应进一步扩大,并不断加深对该平台技术的改革,进而...

    Java反射性能测试分析

    ### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...

    Java程序性能优化 让你的Java程序更快、更稳定.zip

    Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效的代码执行能够带来更好的用户体验,减少服务器资源的消耗,降低运营成本。本资料包“Java程序性能优化 让你的Java程序更快、更...

    JAVA性能测试工具

    JAVA性能测试工具是IT行业中用于评估和优化JAVA应用程序性能的关键组件。这些工具旨在模拟真实世界的负载情况,帮助开发者识别和解决性能瓶颈,确保应用程序在高负载下仍能保持稳定和高效运行。以下是对几种主要JAVA...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、计算机资源分配使用率、负载承受能力。 本教程结合 Java 应用开发的知识点,将内容分为七大模块,从上到下依次...

    知道怎么测试手机的JAVA性能

    Java性能测试对于手机用户和开发者而言至关重要,因为这直接影响到应用程序的运行效率和用户体验。Java,特别是J2ME(Java 2 Micro Edition),是许多移动设备上应用开发的基础,尤其是早期智能手机。J2ME适用于资源...

    java检测程序系统

    通过JNI,Java程序能够利用C/C++等本地代码的高效性,同时保持Java的可移植性。 【JFreeChart库】 JFreeChart是一个开源的Java图形库,用于创建高质量的图表。在本系统中,JFreeChart可能被用来将监控到的系统数据...

    基于JPDA的Java软件性能测试.pdf

    在基于JPDA的Java软件性能测试中,JPDA平台可以帮助开发者快速地对Java程序的性能和稳定性进行检测和分析,从而提高软件的整体质量。 基于JPDA的Java软件性能测试可以通过JPDA平台来进行简化测试,提高认软件的性能...

    Java软件的性能测试.pdf

    Java虚拟机是Java体系的核心组件,它可以解释和执行Java程序代码,提供了跨平台的能力。 Java软件性能测试方法 --------------------- Java软件性能测试可以分为两种:功能测试和性能测试。功能测试是为了验证Java...

    3种JAVA程序设计性能优化

    在Java程序设计中,性能优化是一项至关重要的任务,它直接影响到应用程序的运行效率、资源消耗以及用户体验。本文将深入探讨三种常见的Java程序设计性能优化策略,以帮助开发者提高代码的执行速度和整体系统性能。 ...

    JAVA性能瓶颈和漏洞检测工具

    在Java开发过程中,性能优化和安全漏洞检测是至关重要的环节。Java性能瓶颈可能导致系统响应变慢,用户体验下降,甚至可能导致服务器资源耗尽。而漏洞的存在则可能让系统面临被攻击的风险,因此,掌握有效的检测工具...

    Java程序设计基础

    Java程序设计基础是编程学习的重要领域,主要涵盖了Java语言的基础概念、语法结构和特性。Java是一种全面面向对象的编程语言,由Sun公司的James Gosling等人于1990年开发,最初命名为Oak,后来因互联网的兴起而更名...

    Java程序性能优化 让你的Java程序更快、更稳定

    Java程序性能优化是每个开发人员都需要关注的重要领域,它直接影响到应用程序的运行效率、资源消耗以及用户满意度。本文将深入探讨如何通过各种技术手段提升Java程序的性能,并使其运行更加稳定。 1. **JVM调优** ...

    JAVA性能测试与调优案例

    1. **JVM参数调整**:Java虚拟机(JVM)是Java程序运行的基础,它的配置直接影响到程序性能。例如,可以通过设置-Xms和-Xmx调整堆内存大小,避免垃圾回收频繁;通过-XX:NewRatio控制新生代和老年代的比例,优化对象...

Global site tag (gtag.js) - Google Analytics