偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

OpenHarmony啃論文成長計劃---序列化技術(shù)發(fā)展及應(yīng)用綜述

系統(tǒng) OpenHarmony
JSON和XML屬于文本序列化規(guī)范,都是使用字符串表示所有的數(shù)據(jù),但是像浮點數(shù),布爾值,結(jié)構(gòu)體等一些非字符類型的數(shù)據(jù)。

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

【本期看點】

  • 除JSON/XML之外的序列化技術(shù)的誕生。
  • 歷年來序列化技術(shù)的發(fā)展時間線。
  • 一圖概覽不同序列化技術(shù)的應(yīng)用場景。
  • 一圖比較不同序列化技術(shù)位字符串包含的信息量大小。

除JSON/XML之外的序列化技術(shù)的誕生

JSON/XML的不足

我們都知道JSON/XML擁有非常強大表達力和跨平臺能力的序列化技術(shù),使用起來非常地方便,且沒什么約束。不過隨著各個平臺數(shù)據(jù)量的飆升,方便且自由的JSON/XML序列化技術(shù)也展現(xiàn)出了非常多性能方面的不足,而這些問題恰巧是不能忽視的。

JSON和XML屬于文本序列化規(guī)范,都是使用字符串表示所有的數(shù)據(jù),但是像浮點數(shù),布爾值,結(jié)構(gòu)體等一些非字符類型的數(shù)據(jù),為了解析出這些非字符類型的數(shù)據(jù),在序列化過程中的是會對數(shù)據(jù)類型進行描述的,最后生成的字面量表達會占用很多額外的存儲空間。

在面對龐大的數(shù)據(jù)處理的時候,在這種序列化規(guī)范下,系統(tǒng)甚至有可能會overflow。

序列化技術(shù)蓬勃發(fā)展

就在剛剛說的那些序列化瓶頸下,程序員們怎么會妥協(xié)于此呢,就在JSON之后,越來越多的序列化技術(shù)出現(xiàn)在我們視野內(nèi)。比如上一期談到的幾乎沒有解析時間的Flatbuffers,還有分布式計算經(jīng)常用到的Microsoft Bond,Cap‘s Proto等等。

歷年來序列化技術(shù)的發(fā)展時間線

可以看到21世紀(jì)開始,因為世界在不斷地網(wǎng)絡(luò)信息化,其中對數(shù)據(jù)傳輸過程地要求也越來越高,序列化技術(shù)也在被人們不斷迭代創(chuàng)新。

序列化技術(shù)也被從簡單地字符分割值CSV文件,再到1996年,在SGML的基礎(chǔ)之上,簡化出一種規(guī)范,提出了一種標(biāo)記型語言命名為XML(可擴展標(biāo)記語言)。2006年現(xiàn)在依舊廣受人們喜愛地JSON也出現(xiàn)在了我們的視野,隨著技術(shù)的創(chuàng)新與發(fā)展,序列化技術(shù)也因為不同的場景需求,在近15年間,許多新序列化技術(shù)在不斷地涌現(xiàn)出來。

一圖概覽不同序列化技術(shù)的應(yīng)用場景

在上面這幅圖我們可以直觀地看到不同序列化技術(shù)地應(yīng)用場景,可能這些技術(shù)還可以被應(yīng)用于其他場景,但是相對于其他序列化技術(shù),它們更多地被應(yīng)用于特定地場景中。從80年代電子表格的出現(xiàn),CSV被人們所熟知,再到同時期應(yīng)用于遠程通信的ASN.1。再緊接著的就是象征著網(wǎng)絡(luò)時代正式開始的web應(yīng)用,從1996年采用XML,再到2006年開始JSON盛行,一直沿用至今。

在軟體架構(gòu)中,使用著YAML還有TOML。近些年大火地大數(shù)據(jù)在使用Apache Avro;數(shù)據(jù)庫技術(shù)也引入了序列化技術(shù)BSON;未來大勢所趨地物聯(lián)網(wǎng)使用著CBOR;再到我們現(xiàn)在的瘋狂的網(wǎng)絡(luò)游戲,應(yīng)用著FlatBuffers ,后面更是基于FlatBuffers創(chuàng)新除了兼容性更佳的FlexBUffers。當(dāng)然也離不開鬧得沸沸揚揚的分布式計算,用于這個場景的序列化技術(shù)也是不斷地再迭代,先后有Protocol Buffers,Apache Thrift,Message Pack,Cap'n Proto以及Microsoft Bond。

一圖比較不同序列化技術(shù)位字符串包含的信息量大小

上圖中表示的是用不同的序列化技術(shù),分別序列化相同數(shù)據(jù)后,對位字符串信息量大小進行排序。(越往右信息量越小)。

我們可以根據(jù)上圖直觀地看到序列化后的位字符串包含的信息量,來比較無模式和模式驅(qū)動的序列化規(guī)范。

最左邊的處理方法序列化后的位字符串的信息量是最大的,都是無模式序列化規(guī)范(Schema-less Serialization Specififications),比如BSON,Smile,FlexBuffers等,因為最大地保留了原始數(shù)據(jù)及其結(jié)構(gòu)的信息描述。最右邊的信息量是最小的,比如ASN.1,因為他們把非常多的結(jié)構(gòu)信息已經(jīng)在規(guī)范中提前約定,因此不需要寫入序列化后的位字符串中。

??想了解更多內(nèi)容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

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

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-03-08 15:23:20

序列化反序列化鴻蒙

2022-02-24 16:32:26

OpenHarmon壓縮編碼鴻蒙

2022-03-31 16:13:27

Avro數(shù)據(jù)序列化系統(tǒng)Harmony

2022-02-16 16:28:22

RPC鴻蒙操作系統(tǒng)

2022-03-22 15:04:20

中間件分布式軟件鴻蒙

2022-03-15 15:17:03

開源技術(shù)HarmonyMQTT協(xié)議

2022-03-30 14:43:00

Harmony分布式軟總線通訊

2022-03-28 15:28:42

分布式軟總線通訊Harmony

2010-10-09 21:30:57

FTTx

2022-08-05 19:55:20

學(xué)術(shù)科研鴻蒙

2021-01-26 10:23:06

人工智能人工智能技術(shù)

2020-11-15 20:00:21

人工智能AI

2022-02-10 14:57:46

OpenHarmon鴻蒙操作系統(tǒng)

2022-02-10 15:33:05

OpenHarmon應(yīng)用開發(fā)操作系統(tǒng)

2013-02-20 15:57:46

PON技術(shù)通信網(wǎng)絡(luò)

2010-10-08 21:23:26

PON技術(shù)

2022-11-23 08:32:52

toB應(yīng)用應(yīng)用交付

2023-11-13 16:33:46

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2009-10-16 15:56:56

光纖技術(shù)發(fā)展
點贊
收藏

51CTO技術(shù)棧公眾號