数据格式化与性能优化
2015-09-14 14:09
183 查看
package data;
import java.text.MessageFormat;
public class DataFormat {
final static int N = 25000;
public static void main(String[] args) {
operatorFormat();
withPrecompileFormat();
withoutPrecompileFormat();
}
/**
* @author
梅园浩
* @date 2015年9月14日 上午11:19:12
* @category
通过预编译的方式格式化数据
*/
public static void withPrecompileFormat() {
Object argvec[] = new Object[2];
MessageFormat f = new MessageFormat("The square of (0,number,#) is {1,number,#}");
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
argvec[0] = new Integer[i];
argvec[1] = new Integer(i * i);
String s = f.format(argvec);
}
long endTime = System.currentTimeMillis();
System.out.println("通过预编译的方式格式化数据:"+ (endTime - startTime));
}
/**
* @author
梅园浩
* @date 2015年9月14日 上午11:19:12
* @category
不通过预编译的方式格式化数据
*/
public static void withoutPrecompileFormat() {
Object argvec[] = new Object[2];
String f = "The square of (0,number,#) is {1,number,#}";
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
argvec[0] = new Integer[i];
argvec[1] = new Integer(i * i);
String s = f.format(f,argvec);
}
long endTime = System.currentTimeMillis();
System.out.println("不通过预编译的方式格式化数据:"+ (endTime - startTime));
}
/**
* @author
梅园浩
* @date 2015年9月14日 下午1:35:09
* @category
采用操作符格式化数据
*/
public static void operatorFormat() {
String s ;
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
s = "The square of" + i + " is " + ( i * i );
}
long endTime = System.currentTimeMillis();
System.out.println("采用操作符格式化数据:"+ (endTime - startTime));
}
}
测试结果:
采用操作符格式化数据:79
通过预编译的方式格式化数据:659
不通过预编译的方式格式化数据:804
测试说明:
第一种方式是通过操作符“+”来格式化信息串;
第二种方式应用MessageFormat类通过预编译的方法来格式化一个信息串;
第三种方式是应用MessageFormat类通过不带预编译的方法来格式化一个信息串;
由上面的结果可以看出,采用操作符格式化数据是格式化数据的首选。
import java.text.MessageFormat;
public class DataFormat {
final static int N = 25000;
public static void main(String[] args) {
operatorFormat();
withPrecompileFormat();
withoutPrecompileFormat();
}
/**
* @author
梅园浩
* @date 2015年9月14日 上午11:19:12
* @category
通过预编译的方式格式化数据
*/
public static void withPrecompileFormat() {
Object argvec[] = new Object[2];
MessageFormat f = new MessageFormat("The square of (0,number,#) is {1,number,#}");
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
argvec[0] = new Integer[i];
argvec[1] = new Integer(i * i);
String s = f.format(argvec);
}
long endTime = System.currentTimeMillis();
System.out.println("通过预编译的方式格式化数据:"+ (endTime - startTime));
}
/**
* @author
梅园浩
* @date 2015年9月14日 上午11:19:12
* @category
不通过预编译的方式格式化数据
*/
public static void withoutPrecompileFormat() {
Object argvec[] = new Object[2];
String f = "The square of (0,number,#) is {1,number,#}";
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
argvec[0] = new Integer[i];
argvec[1] = new Integer(i * i);
String s = f.format(f,argvec);
}
long endTime = System.currentTimeMillis();
System.out.println("不通过预编译的方式格式化数据:"+ (endTime - startTime));
}
/**
* @author
梅园浩
* @date 2015年9月14日 下午1:35:09
* @category
采用操作符格式化数据
*/
public static void operatorFormat() {
String s ;
long startTime = System.currentTimeMillis();
for (int i = 0; i <= N; i++) {
s = "The square of" + i + " is " + ( i * i );
}
long endTime = System.currentTimeMillis();
System.out.println("采用操作符格式化数据:"+ (endTime - startTime));
}
}
测试结果:
采用操作符格式化数据:79
通过预编译的方式格式化数据:659
不通过预编译的方式格式化数据:804
测试说明:
第一种方式是通过操作符“+”来格式化信息串;
第二种方式应用MessageFormat类通过预编译的方法来格式化一个信息串;
第三种方式是应用MessageFormat类通过不带预编译的方法来格式化一个信息串;
由上面的结果可以看出,采用操作符格式化数据是格式化数据的首选。
相关文章推荐
- Linux学习之七——乱码的解决方案
- 基于Geoserver发布时间地图
- swift学习笔记之运算符及常用语句
- hdu 3943 K-th Nya Number 2011多校11 数位dp
- [clover]clover 安装到硬盘efi分区
- 10大Go语言开源项目推荐
- 计算机管理系统——VB与Excel联系
- VS C#程序打包覆盖安装不能更新的解决方法
- leetcode - Minimum Path Sum
- 生产环境使用http服务要点
- 今天是快乐的程序员节
- android学习笔记7 - 连接服务器操作和数据处理(get+service)
- windows 2008 32位IIS 服务器转到64位后的各种错误,以及解决方法
- 用Quick3.3简单开发微信打飞机 (三)----------------------------- 添加爆炸动画和子弹与敌机的碰撞
- Android应用建项目第一步
- Win8关机提示"驱动器中没有磁盘"怎么办?Win8关机提示"驱动器中没有磁盘"解决方法
- 说明此动作能充分运动到下半身有效锻炼臀部及腹
- Android 自定义圆环进度条 自适应显示百分比
- jquery 序列化整个表单作为参数传到后台
- jquery 序列化整个表单作为参数传到后台