持續學習-儲存優化之Protobuffer使用與原理
Protobuffer是谷歌開發出來用來替代XML和JSON。需要在專案的build.gradle和app的build.gradle裡新增一些配置。
1.序列化和反序列化速度更快(二進位制方式儲存),體積小、傳輸速度快,但可讀性差了些。
2.預設需要在main資料夾加建立資料夾proto,如果需要改,需要配置下。
3.安裝GenProtoBuf外掛;在proto資料夾下建立比如person.proto檔案。
4.protobuffer在儲存上有優勢,因為他根本就沒有存key,而json有存,
5.需要注意的地方:編寫proto檔案,注意其語法;
6.為何如此高效:使用Varient變長編碼方式進行編碼,比如一個整型1,本來需要4個位元組,但使用可變長編碼只需要1個位元組。
7.Parcelable序列化快的原因:序列化和反序列化都是開發者自己實現的,而Serializable是系統實現;Parcelable使用的是自己記憶體,而Serializable使用的是外部儲存,系統磁碟。
相關文章
- Android 儲存優化 —— MMKV 整合與原理Android優化
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 強化學習之原理與應用強化學習
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- 表格儲存Tablestore權威指南(持續更新)
- 滴滴Ceph分散式儲存系統優化之鎖優化分散式優化
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 儲存學習
- AnimalController 學習 持續更新Controller
- 第50篇 Redis與DB庫(持續化儲存)之間的資料雙寫一致性保證Redis
- 機器學習之儲存與載入.pickle模型檔案機器學習模型
- jenkins+gitlab+nexus持續整合與部署學習JenkinsGitlab
- Flutter持久化儲存之檔案儲存Flutter持久化
- 持續整合、持續交付與持續部署
- uniapp 使用pinpa 持續化更新APP
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- Flutter持久化儲存之key-value儲存Flutter持久化
- MongoDB 儲存引擎與內部原理MongoDB儲存引擎
- 百度NLP:強化學習之原理與應用強化學習
- 效能優化 (十) APP 持續執行之程式保活實現優化APP
- mysql之json型別與文字儲存json的優勢MySqlJSON型別
- 學習 Laravel —— 前端篇(持續更新)Laravel前端
- 【持續更新...】ligerGrid 學習筆記筆記
- 【持續更新...】ECharts學習筆記Echarts筆記
- 【持續更新...】Nginx 學習筆記Nginx筆記
- Java 學習筆記(持續更新)Java筆記
- java程式碼編寫優化(持續更新...)Java優化
- 儲存服務質量優化優化
- 小談mysql儲存引擎優化MySql儲存引擎優化
- Java學習之程式碼優化Java優化
- Linux運維需要持續學習嗎?Linux學習Linux運維
- 【學習筆記之作業系統原理篇】儲存管理筆記作業系統
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- 遊戲開發流程與思想學習筆記(持續更新)遊戲開發筆記
- 持續整合工具之Jenkins基礎使用Jenkins
- spark學習筆記--資料讀取與儲存Spark筆記
- [PyTorch 學習筆記] 7.1 模型儲存與載入PyTorch筆記模型
- 【持續更新...】Microsoft SSIS 學習筆記ROS筆記