几种toString的性能比较
2016-03-04 20:32
316 查看
背景
最近要写一个批量的接口,由于一次请求的量比较大,所以很多小的点不得不好好考虑性能。一个object的toString操作,也是一个性能考虑点,故自己做了一个测试,比较了一下可能的几种toString的方式。public static void main(String[] args){ SingleConsignOrder singleConsignOrder = new SingleConsignOrder(); Long startTime = System.currentTimeMillis(); for(int i = 0; i < 1000; ++i){ SerializationUtils.serialization(singleConsignOrder); } Long endTime = System.currentTimeMillis(); System.out.println("SerializationUtils.serialization:"+(endTime-startTime)); for(int i = 0; i < 1000; ++i){ JSON.toJSONString(singleConsignOrder); } startTime = System.currentTimeMillis(); System.out.println("JSON.toJSONString:"+(startTime-endTime)); for(int i = 0; i < 1000; ++i){ singleConsignOrder.toString(); } endTime = System.currentTimeMillis(); System.out.println("singleConsignOrder.toString:"+(endTime-startTime)); for(int i = 0; i < 1000; ++i){ ToStringBuilder.reflectionToString(singleConsignOrder); } startTime = System.currentTimeMillis(); System.out.println("ToStringBuilder.reflectionToString:"+(startTime-endTime)); for(int i = 0; i < 1000; ++i){ JSON.toJSONBytes(singleConsignOrder); } endTime = System.currentTimeMillis(); System.out.println("JSON.toJSONBytes:"+(endTime-startTime)); }
结果
SerializationUtils.serialization:572JSON.toJSONString:23
singleConsignOrder.toString:10
ToStringBuilder.reflectionToString:93
JSON.toJSONBytes:42
object自带的string速度最快,但是这个自带的toString方法如果不重写,可能达不到想要的效果(有可能打印出来的只是一个内存地址)。所以选择JSON.toJSONString还是不错的,并且操作是幂等的。
相关文章推荐
- android图像变为黑白
- 中间透明的UIView实现的几种方法
- CGAL中Point的引用
- 软件工程——师大站1
- P168 实战练习(构造方法)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- 并发 并行 同步 异步 多线程的区别
- 关于华为机试的一点建议
- PS进修第一篇
- javascript动态创建html内容
- iOS UIBezierPath 路径裁剪
- Java局部变量对垃圾回收的影响
- iOS中使用POST向服务器发送图片文件
- 通过控制台一行行读取数据
- 编写一个函数,返回一个int数组中存储的最大数值,并在一个简单的程序中测试这个函数。(有缺陷)
- iOS 高级绘图之路径剪切
- 求最大公约数算法(欧几里得算法)的实现!!!
- Java面试之一+=赋值符号的使用
- JavaScript:this 的工作原理
- 占座