joda-time 日常使用效率测试
2016-05-25 00:00
375 查看
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
直接代码说话
Java代码
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的实现,会将运行到一定次数的代码进行本地化编译,进行本地化编译后效率大大提高。
本文出自 “AUB” 博客,请务必保留此出处http://aubdiy.blog.51cto.com/2978849/1119689
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
直接代码说话
Java代码
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的实现,会将运行到一定次数的代码进行本地化编译,进行本地化编译后效率大大提高。
本文出自 “AUB” 博客,请务必保留此出处http://aubdiy.blog.51cto.com/2978849/1119689
相关文章推荐
- Joda-Time Formatting & Time Zones
- alibaba fastjson joda time 解析器
- joda-time定时器
- Joda-Time Date(jdk) String相互转换
- Joda-Time 用法
- JodaTime开源时间/日期库
- 使用Joda-Time优雅的处理日期时间
- 【类库】java时间操作类库:Joda-Time
- Joda-Time 入门
- Java日期简化工具Joda-Time
- 总结JODA TIME使用
- 吐槽java时间那点事儿 Joda Time
- Joda Time的使用
- Joda-Time
- SimpleDateFormat线程不安全示例及其解决方法
- joda-time快速上手指导
- Joda Time使用小计
- 时间类总结
- java日期 - Joda-Time
- JodaTime时间处理工具使用详解