<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>

          DirectStructC 結(jié)構(gòu)體工具

          聯(lián)合創(chuàng)作 · 2023-09-28 17:03

          DirectStruct是一個強有力的代碼自動生成工具,它可以自動生成C結(jié)構(gòu)體與XML、JSON、二進制(帶壓縮)等報文之間的轉(zhuǎn)換代碼,還能自動生成ESQL代碼片段,在應用中直接使用自動化代碼以提高開發(fā)效率,避免開發(fā)冗余和手工編碼風險。

          DirectStruct生成了哪些自動化代碼?

          • C結(jié)構(gòu)體定義
          • 批量初始化缺省值函數(shù)
          • 網(wǎng)絡/主機字節(jié)序化函數(shù)
          • 二進制序列化/反序列化函數(shù)(可帶壓縮)
          • XML序列化/反序列化函數(shù)(依賴開源庫fasterxml)
          • JSON序列化/反序列化函數(shù)(依賴開源庫fasterjson)
          • 嵌入式SQL代碼
          • 打印結(jié)構(gòu)體內(nèi)所有字段值函數(shù)

          用DirectStruct自動生成的代碼能干什么?

          • 直接C結(jié)構(gòu)體通訊交換 : 在特定平臺之間直接把C結(jié)構(gòu)體變量通過TCP扔給對方是一個很誘人的想法,阻礙我們的主要是整型字段的字節(jié)序問題,手工編碼是一件冗余的事情,DirectStruct可以幫助你自動化這一過程。解決了字節(jié)序問題后就可以直接交換報文,避免了通訊發(fā)送前的打包和通訊接收后的解包,所以速度非常快,是某些追求極端性能的場景中的首選報文格式。
          • 結(jié)構(gòu)體序列化/反序列化 : 使用DirectStruct自動生成的序列化/反序列化函數(shù),可以將C結(jié)構(gòu)體打包成二進制報文或XML報文或JSON報文等,以及反向解包,是的,打包解包函數(shù)自動生成,省卻了你不少麻煩吧。二進制報文如果啟用了壓縮選項,壓縮后的二進制數(shù)據(jù)塊大幅縮小,更便于通訊高效交換。
          • 基于嵌入式SQL的數(shù)據(jù)庫映射接口的代碼自動化生成
          • 快速打印結(jié)構(gòu)體內(nèi)所有字段值 : 對于一個大結(jié)構(gòu),編寫他的打印所有字段值的函數(shù)是一件很無聊的事情,你可以用DirectStruct幫助你自動生成日志函數(shù),輸出到屏幕,或你自己的日志流中。

          為什么使用DirectStruct?

          • 靈活的報文定義語法 : 命令行工具dsc讀入定義文件,生成自動化代碼,支持子結(jié)構(gòu)嵌套、子結(jié)構(gòu)數(shù)組、定義文件包含等靈活配置方式。
          • 跨平臺:DirectStruct支持WINDOWS、Linux、AIX等主流操作系統(tǒng),尤其是多平臺中不同的表達方法,如64位整型,相同的IDL定義文件將生成不同平臺的標準。

          性能壓測

          壓測結(jié)論:

          • DirectStruct序列化(帶壓縮)后的報文大小66字節(jié),而Google Protocol Buffer為72字節(jié),DirectStruct在序列化和壓縮報文大小上險勝。
          • DirectStruct反復序列化/反序列化(帶壓縮)1000萬次總耗時1.080s,而Google Protocol Buffer總耗時4.248s,DirectStruct在序列化性能上完勝。
          • DirectStruct編譯客戶應用代碼時不需要額外的頭文件和庫文件,只需要工具dsc生成的IDL_AllTypes2.dsc.c、IDL_AllTypes2.dsc.h即可,而Google Protocol Buffer不僅需要PressProtobuf.pb.cc、PressProtobuf.pb.h,還需要/usr/local/include/google/protobuf下的一大堆頭文件以及/usr/local/lib/libprotobuf.a(9MB),還依賴于-lpthread,編譯環(huán)境復雜。
          瀏覽 23
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <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>
                  日本在线观看一区 | 日本黄色视频网站在线观看 | 小泽玛利亚大战黑人 | 久久精品19 | 国产伦理,久久做,天天做 |