zoukankan      html  css  js  c++  java
  • PHP数组串行化和JSON的效率比较

    由于需要把一个数组存进数据库,所以考虑使用转化成字符串方法,方法基本上有两种既serialize和json_encode。
    两种方法各有利弊,于是乎就对这俩讨方法做了下测试。
    serialize、unserialize与json_encode、json_decode比较
    s是指序列化,即serialize、unserialize
    j是json
    源代码:

    <?php
    array("I'm a gooPHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码.", 
            "I'm a good boy.",
            "a" => "PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码", 
            2 =>"PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码",
            'PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码', 
            "I'm a good boy.",
            "I'm a good boy.", 
            "I'm a good boy.", 
            "I'm a good boy.", 
            "I'm a good", 
            "asdfnsadofhasd");
    ?>

    1、压缩与反压缩为一圈
    s:1圈用时=>4.4822692871094E-5
    j:1圈用时=>9.8943710327148E-5
    s-j差值:-5.4121017456055E-5
    s:10圈用时=>9.608268737793E-5
    j:10圈用时=>0.00071501731872559
    s-j差值:-0.00061893463134766
    s:100圈用时=>0.00088191032409668
    j:100圈用时=>0.0079631805419922
    s-j差值:-0.0070812702178955
    s:1000圈用时=>0.0086770057678223
    j:1000圈用时=>0.071093082427979
    s-j差值:-0.062416076660156
    s:10000圈用时=>0.089351177215576
    j:10000圈用时=>0.71031618118286
    s-j差值:-0.62096500396729
    s:100000圈用时=>0.89754796028137
    j:100000圈用时=>7.0866401195526
    s-j差值:-6.1890921592712
    s:1000000圈用时=>8.7691621780396
    j:1000000圈用时=>70.856695890427
    s-j差值:-62.087533712387
    s:10000000圈用时=>87.145391941071
    2、仅反串行化或json_decode
    s:1圈用时=>2.598762512207E-5
    j:1圈用时=>8.2015991210938E-5
    s-j差值:-5.6028366088867E-5
    s:10圈用时=>4.4107437133789E-5
    j:10圈用时=>0.00051689147949219
    s-j差值:-0.0004727840423584
    s:100圈用时=>0.00037717819213867
    j:100圈用时=>0.0050899982452393
    s-j差值:-0.0047128200531006
    s:1000圈用时=>0.0039620399475098
    j:1000圈用时=>0.052362203598022
    s-j差值:-0.048400163650513
    s:10000圈用时=>0.038861989974976
    j:10000圈用时=>0.51281499862671
    s-j差值:-0.47395300865173
    s:100000圈用时=>0.38436698913574
    j:100000圈用时=>5.1456820964813
    s-j差值:-4.7613151073456
    s:1000000圈用时=>3.8943638801575
    j:1000000圈用时=>52.551742076874
    s-j差值:-48.657378196716
    从上面的测试可以看出序列化比JSON效率更高,先压缩后解压时s比j快9倍左右,如果只有解压缩,s比j快15倍

  • 相关阅读:
    SpringBoot2.x入门教程:引入jdbc模块与JdbcTemplate简单使用
    2.5万字长文简单总结SpringMVC请求参数接收
    SpringBoot2.x入门:使用CommandLineRunner钩子接口
    百万级别数据Excel导出优化
    SpringBoot2.x入门:应用打包与启动
    谈谈对分布式事务的一点理解和解决方案
    3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案
    SpringBoot2.x入门教程:理解配置文件
    SpringBoot2.x入门:引入web模块
    SpringBoot2.x入门:快速创建一个SpringBoot应用
  • 原文地址:https://www.cnblogs.com/liuxgnu/p/3535498.html
Copyright © 2011-2022 走看看