精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

啃論文俱樂部---JSON壓縮算法解讀

系統 OpenHarmony
cJSON壓縮算法的特點就是可以使用自動類型提取壓縮JSON數據格式的內容。它成功解決了一個非常重要的問題,就是我們上一小節提到的第三點,將不斷重復的鍵名舍去了。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

JSON壓縮算法解讀

接下來我們進入關于JSON壓縮算法的學習。

為什么需要壓縮JSON?

盡管JSON數據格式比XML效率要高,但是它仍然是web服務器和瀏覽器傳輸過程中比較低效的數據格式。為什么呢?首先,它將所有的內容都轉換為了文本,第二是轉換之后的文本過度使用引號,這樣會給每個字符串添加多兩個字節。第三,它本身沒有schema的標準格式,比如在一個消息中序列化多個對象的時候,即使每個對象的屬性的鍵名是重復且相同的,但是轉換后的文本數據還是會重復每一個鍵名。

JSON以前的時候有一個優勢,就是可以被Javascript引擎直接解析,但因為現在越來越重視安全性,JSON的這個優勢也逐漸消失了,但是因為它比XML效率以及性能都更高,所以許多傳統的C/S模式都是選擇JSON,比如web服務,當有龐大的數據量以及復雜數據結構需要從web瀏覽器中傳輸到服務器的時候,JSON壓縮就起到了非常大的作用,然而中間就會存在我們剛剛說的三點問題,我們也不能使用傳統的gzip壓縮算法,因為瀏覽器不知道服務器是否支持gzip解壓。

下面我們就來看看兩種常見的JSON壓縮算法,cJSON與HPack。

cJSON壓縮算法(cJSON Compression Algorithm)

cJSON壓縮算法的特點就是可以使用自動類型提取壓縮JSON數據格式的內容。它成功解決了一個非常重要的問題,就是我們上一小節提到的第三點,將不斷重復的鍵名舍去了,我們我們來看一個例子:

使用cJSON前的數據格式:

[
{ //表示一個坐標點
"x":100,
"y":100
},
{ //表示一個長方形
"x":100,
"y":100,
"width":200,
"height":150
},
{},//表示一個空對象
... //以下省略數以萬計的對象
]

上面未經壓縮的數據中,我們可以看到有非常多的空間被重復的鍵名所占據,比如“x”,“y”等等,當數據非常多的時候,這些看起來不起眼的重復鍵名會給傳輸效率帶來非常大的影響,其實解決思路也非常簡單,因為他們是重復的,那我們??只存儲一次??不就好了?下面我們來按照我們的思路看看cJSON處理過后的數據吧。

{
"templates":[
["x","y"], //type1
["x","y","width","height"] //type2
],
"value":[
{ //第一個對象:坐標點
"type":1,
"values":[
100,
100
]
},
{ //第二個對象:矩形
"type":2,
"values":[
100,
100,
200,
150
]
},
{
//第三個空對象
},
//以下省略數以萬計的對象......
]
}

從上面的數據中我們可以看到,我們格式化了數據,把鍵名存儲了起來,重復的就不存儲,然后值通過“type”索引來對應鍵名,這樣在數據量龐大的時候確實減少了不少空間,但是我們仔細看“templates”內的鍵名依舊有重復的字段存在。說明了我們還存在優化空間,優化完壓縮后效果如下:

{  "function": "cjson",
"templates": [
[0, "x", "y"],
[1, "width", "height"]
],
"values": [
[1, 100, 100 ], //第一個對象:坐標點
[2, 100, 100, 200, 150 ], //第二個對象:矩形
[] //第三個空對象
]
}

直接看壓縮后的代碼結構你可能不太能理解,那我們就來看看他的具體原理,為了解決“template”內鍵名重復的字段,這個算法采用了樹這個數據結構,每遇到一個要傳輸的對象,就按順序把鍵值存入樹的節點中(灰色的節點是被標記的結尾節點指針,表示該節點存儲的是某個對象最后一個屬性的鍵值),重復的就不存儲,這樣就解決了我們的問題,這個鍵值樹的變化過程如下:

【FFH】啃論文俱樂部---JSON壓縮算法解讀-開源基礎軟件社區

最后數據在匹配鍵值的時候就根據 “values” 中所標記的結尾節點指針找到對應鍵值數組,這樣就構成了cJSON的壓縮算法。

仔細的同學就會發現,如果一個對象中沒有"X"和"Y",只有“width”和“height”,或者鍵值節點順序是錯的,是不是會出問題?答案是對的,會出現無法匹配的鍵值的情況,所以這種方法只能在特定的場景下應用,存在一定局限性。

總體來說,cJSON在處理非常龐大的數據量的時候效果還是非??陀^的。

JSON.HPack壓縮算法(HPack Compression Algorithm)

JSON.HPack是一種無損、跨語言、注重性能的JSON數據壓縮算法,可以讓我們在使用post請求在客戶端發送數據到服務器的過程中相對普通JSON格式節省約70%的字符。

其原理本質上也是跟cJSON一樣將鍵值抽離開,舉個例子:

使用HPack算法前:

{   
"id" : 1,
"sex" : "Female",
"age" : 38,
"classOfWorker" : "Private",
"maritalStatus" : "Married-civilian spouse present",
"education" : "1st 2nd 3rd or 4th grade",
"race" : "White"
}

使用HPack算法后:

["id","sex","age","classOfWorker","mari talStatus","education","race"],
[1,"Female",38,"Private","Married-civilian spouse present","1st 2nd 3rd or 4th grade","White"]

可以看到相對于普通JSON以及cJSON少了很多字符,比如引號,各種括號等等,這種壓縮算法在數據量龐大的情況下效果也非??捎^。

HPack算法提供了幾個級別的壓縮(從0到4)。等級越高壓縮效率越高,每提升一個等級都有引入附加功能。0級壓縮通過從結構中分離鍵值來執行最基本的壓縮,并在索引0的元素上創建鍵名數組,下一個等級就可以通過假設存在重復條目來進一步減小JSON數據的大小。

性能分析

接下來我們直接用數據來看看這幾個壓縮算法的壓縮效率,我們分別用5組大小不同的JSON文件(50KB~1MB),每個JSON文件將使用servlet容器(tomcat)提供給瀏覽器,并分別用以下算法進行壓縮:

  • Original JSON size - 未作修改的JSON數據。
  • Minimized - 刪除空白和新行(最基本的js優化)。
  • Compresse cJSON - 使用CJSON壓縮算法進行JSON壓縮。
  • Compresse HPack - 使用JSON.HPack壓縮算法進行JSON壓縮。
  • Gzipped - 使用gzip和進行JSON壓縮。
  • Gzipped + Minimized - 使用gzip和刪除空白和新行(最基本的js優化)進行JSON壓縮。
  • Gzipped + Compresse cJSON - 使用gzip和CJSON壓縮算法進行JSON壓縮。
  • Gzipped + Compresse HPack - 使用gzip和JSON.HPack壓縮算法進行JSON壓縮。

下圖(TABLE I.RESULTES)是用以上各種方式處理完后的JSON數據大?。╞ytes),不同列表示不同的JSON數據集,不同行表示使用不同的壓縮方式。

【FFH】啃論文俱樂部---JSON壓縮算法解讀-開源基礎軟件社區

下面第一個圖表Y軸表示JSON數據大小(bytes):

【FFH】啃論文俱樂部---JSON壓縮算法解讀-開源基礎軟件社區

第二張圖Y軸是JSON數據大小的百分比(%),原始數據為100%:

【FFH】啃論文俱樂部---JSON壓縮算法解讀-開源基礎軟件社區

從上面的幾個圖表中我們可以直觀地看到,單獨使用cJSON可以把原始數據大小壓縮到45%左右,單獨使用HPack可以把原始數據大小壓縮到8%左右,可見整體上HPack是優于cJSON的。

然而我們可以看到當使用gzip和上面提到的兩個壓縮算法相結合進行JSON壓縮,效果才是最優的,基本可以達到1%~2%的壓縮率。

總的來說,HPack比cJSON效率更高,速度也更快,但是在使用壓縮算法進行傳輸的過程中,接收的一端需要進行相應的解壓縮操作,否則無法使用被壓縮過后的JSON數據,這一步也會存在一定的性能開銷,在我們選擇使用JSON壓縮的時候,也需要考慮到這一點。當可以使用gzip進行壓縮的時候,這種方法比其他壓縮算法的效率都高,當兩者同時結合起來,效果顯而易見。

好了,我們這一次完整地了解了JSON序列化的發展,規范,應用以及相關的壓縮算法,相信大家不僅對JSON壓縮算法有了更深的了解,也對JSON序列化這個技術領域有了深刻的認識。

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2290。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。


責任編輯:jianghua 來源: ??51CTO開源基礎軟件社區
相關推薦

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-06-15 15:56:22

壓縮算法神經網絡

2022-10-18 16:14:28

2022-06-27 14:01:31

LZ4 分析數據密集型壓縮算法

2022-04-07 15:03:07

Harmony計算機鴻蒙

2022-05-12 15:05:32

云計算數據壓縮

2022-06-08 16:29:45

無損壓縮方案分布式

2022-06-08 11:46:29

字符串鴻蒙

2022-05-13 22:44:35

物聯網算法鴻蒙

2022-06-15 16:06:29

LZ4 算法硬件加速

2022-06-15 15:44:21

無損數據壓縮鴻蒙

2022-04-20 20:37:58

鴻蒙操作系統

2022-09-30 13:57:15

JSON解析C語言

2022-05-13 23:03:25

大數據Big Data巨量資料

2022-02-24 16:32:26

OpenHarmon壓縮編碼鴻蒙

2022-09-16 15:01:37

操作系統技術鴻蒙

2022-09-07 15:08:58

操作系統鴻蒙

2022-09-13 16:10:15

鴻蒙操作系統

2022-09-06 15:46:52

speexdsp鴻蒙

2022-09-14 15:28:19

操作系統鴻蒙
點贊
收藏

51CTO技術棧公眾號

国产亚洲精品美女久久久m| 亚洲美女视频网站| 欧美极品少妇无套实战| 天堂免费在线视频| 久久一级电影| 欧美日韩国产另类不卡| 天堂av一区二区| 亚洲综合网av| 国语对白精品一区二区| 337p亚洲精品色噜噜狠狠| 一级黄色录像免费看| 国产高清视频免费| 久久五月天小说| 欧美日韩aaa| a级片一区二区| 免费国产羞羞网站视频| 先锋亚洲精品| 一区二区成人av| 国产精品区在线| 欧美人动性xxxxz0oz| 2024国产精品| 国产主播喷水一区二区| 国产精品第一页在线观看| 免费黄色成人| 555www色欧美视频| 91手机视频在线| 亚洲色图狠狠干| 激情综合网av| 欧美中文字幕在线| 开心激情五月网| 9999精品视频| 欧美日韩国产在线| 中文字幕久久综合| 亚洲av无码一区二区乱子伦| 天堂成人国产精品一区| 九色91av视频| 国产老熟女伦老熟妇露脸| 偷拍自拍亚洲| 欧美性猛交xxxx免费看久久久| 欧美污视频久久久| 欧美一级特黄aaaaaa| 久久国产生活片100| 欧美激情二区三区| 日本黄色免费片| 宅男在线一区| 欧美成人艳星乳罩| 亚洲第一中文av| 影院在线观看全集免费观看| 欧美激情一区二区| 久久精品日产第一区二区三区乱码 | 中文字幕在线不卡| 蜜桃传媒视频麻豆一区 | 欧美特黄一级视频| 久久99国产乱子伦精品免费| 日韩免费观看视频| 日本道在线观看| 极品裸体白嫩激情啪啪国产精品| 久久久成人精品视频| 免费黄在线观看| 国产精品久久久久久久久久白浆| 91精品久久久久久久91蜜桃| 国产成人黄色网址| 草民电影神马电影一区二区| 一区二区三区四区高清精品免费观看| 亚洲欧美日韩在线综合| 成a人片在线观看www视频| 成人av在线资源网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 波多野结衣电车痴汉| 国产精品一卡| 国产69精品久久久久久| 顶级黑人搡bbw搡bbbb搡| 欧美gvvideo网站| 中文字幕久久亚洲| 999精品久久久| 99精品全国免费观看视频软件| 亚洲精品小视频| 中文字幕在线观看的网站| 日韩精品免费一区二区夜夜嗨 | 性刺激综合网| 95在线视频| wwwwxxxxx欧美| 欧美中日韩一区二区三区| 免费一级在线观看播放网址| 久久女同性恋中文字幕| 日韩三级电影网站| 国产三级视频在线看| 中文字幕不卡三区| gogogo免费高清日本写真| 黄色网址免费在线观看| 亚洲精品日日夜夜| 国产又大又长又粗又黄| 欧美卡一卡二| 亚洲国产精品影院| 久久久久久久午夜| 亚洲啊v在线| 欧美主播一区二区三区美女| 国产成人手机视频| 亚洲欧美一级| 欧美mv日韩mv国产网站| 黄色片视频免费观看| 日韩av在线播放网址| 欧美不卡视频一区发布| 日韩av一二三区| 一区二区毛片| 国产美女主播一区| 一级黄色免费片| 粉嫩绯色av一区二区在线观看| 99国产在线观看| 瑟瑟在线观看| 国产精品国产三级国产| 欧美视频在线第一页| 日韩电影免费观| 欧美一区二区视频网站| 亚洲の无码国产の无码步美| 色天天综合网| 午夜精品一区二区三区在线播放| 日韩国产亚洲欧美| 成人免费视频视频| 色综合电影网| 大黄网站在线观看| 欧美日韩国产首页| 国产亚洲色婷婷久久99精品91| 日韩在线观看| 欧美国产日本高清在线| 波多野结衣在线观看一区| 国产成人无遮挡在线视频| 欧美日韩国产一二| 午夜伦理在线视频| 欧美日韩久久一区二区| 久久性爱视频网站| 图片小说视频色综合| 欧美一区二区影院| 国产精品久久久久久久免费 | 另类视频一区二区三区| 日韩精品免费视频| 老女人性淫交视频| 免费xxxx性欧美18vr| 亚洲最大成人在线| 四虎影视2018在线播放alocalhost| 国产精品国产自产拍高清av | 欧美精品18videos性欧美| 四虎精品永久在线| 成人精品小蝌蚪| 秋霞在线一区二区| 蜜桃成人精品| 日韩精品在线电影| 久久免费在线观看视频| 精品一区二区影视| 亚洲7777| free欧美| 国产一区二区三区在线看| 精品91久久久| av亚洲精华国产精华精| 一道精品一区二区三区 | 亚洲免费看黄网站| 超碰成人在线播放| 综合伊思人在钱三区| 性色av一区二区三区在线观看 | 日韩欧美国产一二三区| www.涩涩爱| 日韩精品一卡二卡三卡四卡无卡| 久久久久久久久久久久久久一区| 77thz桃花论族在线观看| 日韩欧美一级特黄在线播放| 欧美性生交大片| 久久99精品一区二区三区| 亚洲春色在线视频| 福利一区二区免费视频| 国产一区二区三区精品久久久| 五月天婷婷导航| 国产午夜精品理论片a级大结局 | 999在线观看免费大全电视剧| 麻豆免费在线观看| 91精品中文字幕一区二区三区| 国产成人自拍网站| 国产精品原创巨作av| 蜜臀av.com| 国产精品qvod| 91精品国产91久久| 日本一区高清| 在线欧美日韩国产| 女人裸体性做爰全过| 久久91精品国产91久久小草| 国产盗摄视频在线观看| 亚洲成人影音| 69影院欧美专区视频| 女人偷人在线视频| 欧美日韩精品二区第二页| 日本裸体美女视频| 粉嫩av一区二区三区在线播放 | 黑人巨大精品| www.亚洲成人| 亚洲 小说区 图片区 都市| 欧洲亚洲国产日韩| 日韩毛片在线播放| 综合自拍亚洲综合图不卡区| 99久久人妻精品免费二区| 蜜臀av一级做a爰片久久| 国产一区二区片| 热久久天天拍国产| 国产区欧美区日韩区| 麻豆久久久久| 8090成年在线看片午夜| 大地资源网3页在线观看| 日韩精品一二三四区| 国产福利第一页| 欧美性大战久久| 日韩久久精品视频| 一区二区三区蜜桃网| ass极品国模人体欣赏| 99精品视频一区| 一卡二卡三卡四卡五卡| 青青青爽久久午夜综合久久午夜| 可以看毛片的网址| 一本一本久久a久久综合精品| 日本免费高清不卡| 久久这里只有精品一区二区| 91中文在线视频| 青草综合视频| 国产精品美女主播在线观看纯欲| 三妻四妾的电影电视剧在线观看| 欧美裸体xxxx极品少妇| 天堂中文а√在线| 一道本无吗dⅴd在线播放一区| 亚洲色图 校园春色| 亚洲第一网站男人都懂| 精品人妻无码一区二区色欲产成人 | 久久久久国色av免费看影院| av天堂一区二区| 国产高清久久久| 亚洲黄色片免费看| 精品在线你懂的| 制服丝袜综合网| 青青草视频一区| 污版视频在线观看| 蜜臀久久99精品久久久画质超高清| 波多野结衣作品集| 久久亚洲综合| jizz欧美激情18| 欧美aaaaaa午夜精品| 中文字幕视频在线免费观看| 三级亚洲高清视频| 日本xxxxxxx免费视频| 日日夜夜精品视频天天综合网| 日韩精品一区二区三区久久| 亚洲一区二区免费看| 99热自拍偷拍| 西西人体一区二区| 久草综合在线观看| 日本伊人色综合网| 天天色综合天天色| 久久成人av少妇免费| 中文字幕66页| 国产精品综合一区二区三区| 一级黄色免费毛片| 高清成人在线观看| 五月婷婷综合在线观看| 久久这里只精品最新地址| 色婷婷av777| 国产农村妇女毛片精品久久麻豆| 国产18无套直看片| 日韩理论在线观看| 欧美人与禽zozzo禽性配| 亚洲mv在线观看| 中文字幕手机在线视频| 欧美日本精品一区二区三区| 国产精品无码久久av| 欧美精品一区二区三区蜜桃| 男女污视频在线观看| 最近2019好看的中文字幕免费| 久久精品视频观看| 欧美精品久久久久久久| 国产精品迅雷| 91精品视频专区| 久久97精品| 亚洲欧洲国产日韩精品| 红桃视频国产一区| 国产天堂在线播放| 国产高清亚洲一区| 在哪里可以看毛片| 亚洲精品免费在线观看| 国偷自拍第113页| 欧美日韩中文一区| 欧美一级一区二区三区| 伊人青青综合网站| 欧美xxxbbb| 国产精品网站大全| 国产精品xxxav免费视频| 婷婷四房综合激情五月| 国内精品福利| 天天操天天爱天天爽| 国产91露脸合集magnet| 欧洲美熟女乱又伦| 亚洲高清三级视频| 亚洲熟女乱色一区二区三区久久久| 日韩欧美国产一区二区三区 | 欧美激情中文字幕在线| 国产另类xxxxhd高清| 国产91视觉| 日韩1区2区| 91黄色小网站| 国产成人午夜视频| 成年人视频软件| 日韩欧美高清在线视频| a在线观看免费| 一区二区三区回区在观看免费视频| 黄色成人在线网| 国产美女被下药99| 亚洲精品播放| 成人免费播放器| 激情综合色综合久久综合| 成年人网站免费看| 一区二区高清在线| 91成品人影院| 国产一区二区三区丝袜| 高清毛片在线观看| http;//www.99re视频| 99精品视频在线观看播放| caoporn超碰97| 久久久久久麻豆| 伊人久久综合视频| 欧美v国产在线一区二区三区| 在线观看免费黄视频| 日韩免费av片在线观看| 露出调教综合另类| 人妻夜夜添夜夜无码av| 国产成人午夜精品5599 | 日韩理伦片在线| 国产精品吹潮在线观看| 网曝91综合精品门事件在线| 给我免费播放片在线观看| 国产精品资源在线| 成熟的女同志hd| 91精品国产色综合久久不卡电影 | 性一交一乱一色一视频麻豆| 久久久精品网站| 最新亚洲国产| 国产又大又长又粗又黄| 国产在线精品免费av| 中文字幕电影av| 日韩欧美一级片| 人人超在线公开视频| dy888夜精品国产专区| 国内精品福利| 国产熟女高潮一区二区三区| 精品美女永久免费视频| 头脑特工队2在线播放| 欧美在线欧美在线| 国产精品入口久久| 91看片在线免费观看| 中文字幕永久在线不卡| 国产av一区二区三区精品| 色综合久久88| 精品久久对白| 女性隐私黄www网站视频| 国产欧美一区二区在线| 中国女人真人一级毛片| 久久精品影视伊人网| 在线精品视频一区| 5月婷婷6月丁香| 国产日韩精品一区二区三区| 一级黄色大片免费观看| 欧美另类xxx| 欧美男男freegayvideosroom| 国产淫片av片久久久久久| 欧美国产日本韩| 99热在线只有精品| 性日韩欧美在线视频| 国产欧美日韩视频在线| 在线观看av免费观看| 亚洲第一搞黄网站| 精品av中文字幕在线毛片| 国产精品直播网红| 午夜亚洲福利| 人妻体内射精一区二区| 欧美精品粉嫩高潮一区二区| 欧美色图天堂| 日本在线高清视频一区| 国产乱国产乱300精品| 日韩污视频在线观看| 在线成人免费网站| 日韩在线观看中文字幕| 欧美精品一区免费| 国产精品久久精品日日| 日本xxxxwww| 国产精品久久不能| 最新欧美人z0oozo0| 中文字幕av网址| 欧美一区二区三区在线看| 华人av在线| 欧美少妇一区二区三区| 久久久国际精品| 亚洲女人18毛片水真多| 国产精品久久一| 亚洲视频www| tube国产麻豆| 中国china体内裑精亚洲片| 精品视频自拍| 国产91在线免费观看|