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

joda-time 日常使用效率测试

    博客分类:
  • Java
阅读更多

joda-time 日常使用效率测试

 

joda time官网地址:http://joda-time.sourceforge.net/

 

最近项目上引进joda-time.jar,进行日期类处理,使用方便,灵活。

抱着怀疑的态度做了一个简单的基本使用测试,用数据来证明一切。

 

测试环境:

JDK:sun JDK 1.6.31

joda-time.jar: joda-time-2.1.jar

机器系统:xp

开发软件:eclipse3.7.2

 

直接代码说话

 

 

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.joda.time.DateTime;

public final class Test {

	private Test() {
	}

	/**
	 * <B>测试jodatime日期处理效率</B><br>
	 * 
	 * @author liujinxin
	 * @param preheatCount
	 *            预热次数
	 * @param runCount
	 *            运行次数
	 */
	private static void testJoda(int preheatCount, int runCount) {
		// 预热代码
		for (int i = 0; i < preheatCount; i++) {
			new DateTime();
		}
		// 测试部分
		final long start = System.currentTimeMillis();
		for (int i = 0; i < runCount; i++) {
			final DateTime dateTime = new DateTime();
			// 测试日期修改
			// new DateTime().plusHours(1);
			// 测试日期格式化
			dateTime.toString("yyyy-MM-dd HH");

		}
		final long end = System.currentTimeMillis();
		System.out.println(end - start);
	}

	/**
	 * <B>测试JDK日期处理效率</B><br>
	 * 
	 * @author liujinxin
	 * @param preheatCount
	 *            预热次数
	 * @param runCount
	 *            运行次数
	 */
	private static void testCalendar(int preheatCount, int runCount) {
		// 预热代码
		for (int i = 0; i < preheatCount; i++) {
			Calendar.getInstance();
		}
		// 测试部分
		final long start1 = System.currentTimeMillis();
		for (int i = 0; i < runCount; i++) {
			// 测试日期修改
			// Calendar.getInstance().add(Calendar.HOUR, 1);
			// 测试日期格式化
			final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH");
			simpleDateFormat.format(new Date());
		}
		final long end1 = System.currentTimeMillis();
		System.out.println(end1 - start1);
	}

	public static void main(String[] args) {
		final int preheatCount = 0;
		final int runCount = 100000;
		// 分别单独运行两个测试方法
		// testJoda(init, runCount);
		testCalendar(preheatCount, runCount);
	}
}

 

测试具体数据就不贴出来了(别骂我,每个机器都不大一样,自己跑一下,很快的),

结论:

jodatime在预热10000次后 运行效率远高于JDK自带的Calendar。

但是未预热时,运行次数小于1000时,JDK自带的Calendar稍快一些。

一般系统对于时间的处理都会大于1000次,大型一点的系统一般都有预热程序。

 

分析:

sun的jvm的实现,会将运行到一定次数的代码进行本地化编译,进行本地化编译后效率大大提高。

 

 

分享到:
评论

相关推荐

    joda-time-2.8.1-API文档-中文版.zip

    赠送jar包:joda-time-2.8.1.jar 赠送原API文档:joda-time-2.8.1-javadoc.jar 赠送源代码:joda-time-2.8.1-sources.jar 包含翻译后的API文档:joda-time-2.8.1-javadoc-API文档-中文(简体)版.zip 对应Maven信息...

    joda-time-2.10.8-API文档-中文版.zip

    赠送jar包:joda-time-2.10.8.jar; 赠送原API文档:joda-time-2.10.8-javadoc.jar; 赠送源代码:joda-time-2.10.8-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.8.pom; 包含翻译后的API文档:joda-time-...

    joda-time-2.9.5-API文档-中文版.zip

    赠送jar包:joda-time-2.9.5.jar; 赠送原API文档:joda-time-2.9.5-javadoc.jar; 赠送源代码:joda-time-2.9.5-sources.jar; 赠送Maven依赖信息文件:joda-time-2.9.5.pom; 包含翻译后的API文档:joda-time-...

    joda-time-2.5-API文档-中文版.zip

    赠送jar包:joda-time-2.5.jar; 赠送原API文档:joda-time-2.5-javadoc.jar; 赠送源代码:joda-time-2.5-sources.jar; 赠送Maven依赖信息文件:joda-time-2.5.pom; 包含翻译后的API文档:joda-time-2.5-javadoc-...

    joda-time-2.10.4-API文档-中文版.zip

    赠送jar包:joda-time-2.10.4.jar; 赠送原API文档:joda-time-2.10.4-javadoc.jar; 赠送源代码:joda-time-2.10.4-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.4.pom; 包含翻译后的API文档:joda-time-...

    joda-time-2.2-API文档-中英对照版.zip

    赠送jar包:joda-time-2.2.jar; 赠送原API文档:joda-time-2.2-javadoc.jar; 赠送源代码:joda-time-2.2-sources.jar; 赠送Maven依赖信息文件:joda-time-2.2.pom; 包含翻译后的API文档:joda-time-2.2-javadoc-...

    joda-time-android,具有android专门化的joda时间库.zip

    在完成上述步骤后,即可在项目中自由地使用`joda-time-android`提供的功能,提升日期时间处理的效率和便利性。 总之,`joda-time-android`是一个专门为Android开发设计的日期时间处理库,它结合了Joda-Time的强大...

    joda-time-2.9.9

    《Joda-Time 2.9.9:时间日期处理的高效工具》 Joda-Time是Java平台上一个著名的日期和时间处理库,它弥补了Java标准库中日期时间处理的不足...无论是日常开发还是复杂的时间逻辑处理,Joda-Time都是值得信赖的选择。

    joda-time-2.10.13-API文档-中英对照版.zip

    赠送jar包:joda-time-2.10.13.jar; 赠送原API文档:joda-time-2.10.13-javadoc.jar; 赠送源代码:joda-time-2.10.13-sources.jar; 赠送Maven依赖信息文件:joda-time-2.10.13.pom; 包含翻译后的API文档:joda-...

    joda-time-2.10.6.jar

    Joda-Time 令时间和日期值变得易于管理、操作和理解。日期和时间是一个非常复杂的领域。Joda-Time中的许多类旨在使域的细微差别得以充分表达。版本2.10.6是当前的最新版本。该版本被认为是稳定的,值得2.x标签使用。

    joda-time-2.5.zip

    1. **更好的API设计**:Joda-Time使用更直观的类和方法,比如`plusDays()`、`minusHours()`等,使得代码更加易读。 2. **时区支持**:Joda-Time提供了丰富的时区处理,包括历史上时区规则的变化。 3. **日期时间...

    joda-time2.4源码及编译

    3. **测试与调试**:编写单元测试,验证Joda-Time的功能是否正常工作,通过调试源码,深入理解其实现逻辑。 总结,Joda-Time 2.4作为日期时间处理的利器,通过其丰富的API和优秀的设计,极大地简化了开发者在日期...

    joda-time-2.3

    1. 易于使用:Calendar让获取"正常的"的日期变得很困难,使它没办法提供简单的方法,而Joda-Time能够 直接进行访问域并且索引值1就是代表January。 2. 易于扩展:JDK支持多日历系统是通过Calendar的子类来实现,这样...

    joda-time-2.9.9-dist.tar.gz

    《Joda-Time:Java日期和时间处理的利器》 在Java编程中,日期和时间的处理一直是开发者面临的一个挑战。早期的Java标准库中的日期时间...在实际开发中,熟练掌握Joda-Time的使用,无疑会提升你的代码质量和工作效率。

    joda-time源码

    在本文中,我们将深入探讨Joda-Time的核心概念、主要功能以及如何在实际项目中使用它。 1. **核心概念** Joda-Time基于“瞬时值”(Instant)和“时期”(Period)的概念。"瞬时值"表示自纪元以来的毫秒数,而...

    joda-time-2.1.jar

    joda-time-2.1.jar

    joda-time-2.7-dist

    总的来说,Joda-Time是Java开发中处理日期和时间的首选库,它的出现极大地提高了开发效率,减少了出错的可能性。版本2.7的发布,不仅提供了丰富的功能,还确保了良好的可读性和可维护性,对于任何需要处理时间日期...

    joda-time-1.6.2.jar

    总结,Spring MVC在处理日期字段时,通过引入"joda-time-1.6.2.jar"库,并正确配置,可以更方便地处理各种日期格式,提高开发效率并减少错误。使用Joda-Time不仅提供了更强大的日期时间操作功能,还简化了日期字段的...

Global site tag (gtag.js) - Google Analytics