欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

几种toString的性能比较,tostring性能比较

来源: javaer 分享于  点击 7615 次 点评:122

几种toString的性能比较,tostring性能比较


背景

最近要写一个批量的接口,由于一次请求的量比较大,所以很多小的点不得不好好考虑性能。一个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:572
JSON.toJSONString:23
singleConsignOrder.toString:10
ToStringBuilder.reflectionToString:93
JSON.toJSONBytes:42

object自带的string速度最快,但是这个自带的toString方法如果不重写,可能达不到想要的效果(有可能打印出来的只是一个内存地址)。所以选择JSON.toJSONString还是不错的,并且操作是幂等的。

相关文章

    暂无相关文章

用户点评