<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Easyjson快速JSON序列化

          聯(lián)合創(chuàng)作 · 2023-09-30 21:42

          Easyjson用于序列化JSON數(shù)據(jù),采用Go語(yǔ)言編寫,而不是通過(guò)使用反射生成編組代碼。一個(gè)庫(kù)的目的之一是使所生成的代碼足夠簡(jiǎn)單,使得它可以容易地優(yōu)化或固定。另一個(gè)目標(biāo)是為用戶提供不可定制的“encoding/json”,如產(chǎn)生snake_case名稱或啟用默認(rèn)“omitempty“生成代碼。

          用法:

          go get github.com/mailru/easyjson/...
          easyjson -all <file>.go

          這將利用編組/解組方法結(jié)構(gòu)生成<file>_easyjson.go

          限制:

          • The library is at an early stage, there are likely to be some bugs and some features of 'encoding/json' may not be supported. Please report such cases, so that they may be fixed sooner.

          • Unsafe package is used by the code. While a non-unsafe version of easyjson can be made in the future, using unsafe package simplifies a lot of code by allowing to use 'switch' for filling out structs and working around limitations of standard functions like 'strconv.ParseInt'.

          • Floats are currently formatted with default precision for 'strconv' package. It is obvious that it is not always the correct way to handle it, but there aren't enough use-cases for floats at hand to do anything better.

          • During parsing, parts of JSON that are skipped over are not syntactically validated more than required to skip matching parentheses.

          • No true streaming support for encoding/decoding. For many use-cases and protocols, data length is typically known on input and needs to be known before sending the data.

          解析:

          lib json size MB/s allocs/op B/op
          standard regular 22 218 10229
          standard small 9.7 14 720
          -------- ----------- ------ ----------- -------
          easyjson regular 125 128 9794
          easyjson small 67 3 128
          -------- ----------- ------ ----------- -------
          ffjson regular 66 141 9985
          ffjson small 17.6 10 488
          -------- ----------- ------ ----------- -------
          codec regular 55 434 19299
          codec small 29 7 336
          -------- ----------- ------ ----------- -------
          ujson regular 103 N/A N/A

          編組,one goroutine

          lib json size MB/s allocs/op B/op
          standard regular 75 9 23256
          standard small 32 3 328
          standard large 80 17 1.2M
          ---------- ----------- ------ ----------- -------
          easyjson regular 213 9 10260
          easyjson* regular 263 8 742
          easyjson small 125 1 128
          easyjson large 212 33 490k
          easyjson* large 262 25 2879
          ---------- ----------- ------ ----------- -------
          ffjson regular 122 153 21340
          ffjson** regular 146 152 4897
          ffjson small 36 5 384
          ffjson** small 64 4 128
          ffjson large 134 7317 818k
          ffjson** large 125 7320 827k
          ---------- ----------- ------ ----------- -------
          codec regular 80 17 33601
          codec*** regular 108 9 1153
          codec small 42 3 304
          codec*** small 56 1 48
          codec large 73 483 2.5M
          codec*** large 103 451 66007
          ---------- ----------- ------ ----------- -------
          ujson regular 92 N/A N/A

          編組,并發(fā)

          lib json size MB/s allocs/op B/op
          standard regular 252 9 23257
          standard small 124 3 328
          standard large 289 17 1.2M
          ---------- ----------- ------- ----------- -------
          easyjson regular 792 9 10597
          easyjson* regular 1748 8 779
          easyjson small 333 1 128
          easyjson large 718 36 548k
          easyjson* large 2134 25 4957
          ---------- ----------- ------ ----------- -------
          ffjson regular 301 153 21629
          ffjson** regular 707 152 5148
          ffjson small 62 5 384
          ffjson** small 282 4 128
          ffjson large 438 7330 1.0M
          ffjson** large 131 7319 820k
          ---------- ----------- ------ ----------- -------
          codec regular 183 17 33603
          codec*** regular 671 9 1157
          codec small 147 3 304
          codec*** small 299 1 48
          codec large 190 483 2.5M
          codec*** large 752 451 77574


          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产抠逼| 亚洲韩国在线 | 成人网站三级在线视频网站 | 毛片网X4W一7CC | 天天上天天干天天日 |