国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Base62x比Base64的編碼速度更快嗎?

tainzhi / 3483人閱讀

摘要:比如其中一個的應用場景,在中取代的改進使用的方案是從代碼層分析耗時差值原因,盡管兩者都使用了位操作進行計算,但在單位編碼長度上多了數值判斷,由此導致其速度下降。

現在幾乎所有企事業單位、政府機構、軍工系統等的IT生產系統都會用到Base64編碼,從RSA安全密鑰到管理信息系統登錄入口回跳,目前越來越多的IT系統研發者開始使用 Base62x 替換 Base64.

-Base62x 提供了一種無符號輸出的Base64的編碼方案,在許多應用場合其純字母和數字的輸出形式,可以有效的規避因為符號帶來的各種負面影響,并能夠有效削減或兼容各種Base64的變種形式。

借著 Base62x 在 -GitHub 上獲得幾個贊之后,我們探討另外一個問題,Base62x 的編碼在輸出文本形式上略勝一籌,是值得推薦的替代方案,但其編碼速度和效率如何?

為此我們設計一個評測任務,分別使用Base62x 和 Base64進行20萬次編碼操作,其中Base62x 使用 PHP的ext module方式實現的 base62x_encode , Base64 也是 PHP內置的 base64_encode , 兩種均是使用C語言實現,并通過擴展方式集成在 PHP中,相對而言,可比性較好. 運行主機是在 Windows下虛擬主機運行 OpenSuSE 42,Nginx 1.12, PHP 7.0.
通過腳本Command Line調用方式進行20萬次編碼任務,對比測試數據:

base62x 200000 timestart:1513077337.6748 timecost:0.30399990081787
base64 200000 timestart:1513077337.9788 timecost:0.16817998886108

base62x 200000 timestart:1513077401.2177 timecost:0.29567098617554
base64 200000 timestart:1513077401.5134 timecost:0.17081189155579

base62x 200000 timestart:1513077424.234 timecost:0.30112099647522
base64 200000 timestart:1513077424.5351 timecost:0.1718909740448

base62x 200000 timestart:1513077447.9861 timecost:0.29450607299805
base64 200000 timestart:1513077448.2806 timecost:0.16546702384949

base62x 200000 timestart:1513077470.7367 timecost:0.45493698120117
base64 200000 timestart:1513077471.1917 timecost:0.24029588699341

運行5次之后,Base62x 和 Base64 其均值分別為,0.330047 和 0.183329 . 由此可見,Base62x 比 Base64 在編碼速度上稍慢,20萬次操作耗時比值為 1:0.555 , 盡管每次操作其耗時差(7.33589E-07)可以忽略不計,但考察比值,Base62x 慢了大約 44.5%,大致是 Base64 完成兩個編碼操作, 目前版本的 Base62x 完成一個多一點的編碼操作。

如果加上在應用層的各種判斷,使用 Base62x 替代 Base64 可能是有優勢的,比如判斷是否包括+,進而轉化為空格,是否包括等號等,因為任何一步額外的判斷或替換操作,其耗時將可能遠超過 Base62x 與 Base64 操作耗時的差值。

比如其中一個 URLEncode 的應用場景,在 -github/wadelau/gMIS/comm/ido.js 中( -R/J2SI ):

var actx = unescape(tObj.action);
actx = actx.replace(‘+‘, ‘ ‘);     

取代的改進使用Base62x的方案是:

var actx = Base62x.decode(tObj.action);
 /* no more action needed */

從代碼層分析耗時差值原因,盡管兩者都使用了位操作進行計算,但 Base62x 在單位編碼長度上多了數值判斷,由此導致其速度下降。Base62x 還是新事物,其代碼應該還有可以再改進優化的空間。

如果進一步改進優化,Base62x 有可能與 Base64 相同的編碼速度嗎?

有沒有可能存在另外一種不需要數值判斷,也能夠滿足與 Base62x 一樣無符號輸出的64進制編碼方案?

小結,單就編碼速度而言, Base64 方案快,如果加上其他判斷與替換操作, Base62x 方案勝出,未來可能會有魚(無符號輸出)和熊掌(速度)兼得的新編碼方案出現。

-R/p2SQ

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30114.html

相關文章

  • -Base62x 新增 -Perl 版本技術實現 Base62x.pm

    摘要:同的其他版本相通,實現了跨編程語言運行時環境的數據安全交換。函數式編程的除了式的寫法,還提供了函數式編程的調用方式,列如下。函數式編程適合單一次啟動并運行的使用場景。 在此前的一篇Blog(-R/G2SW )中,-gMIS 吉密斯優化更新+分組項區段AddGroupBySeg/+復制AddByCopy等, 我們提到注冊動作registerAct: 改進增加 Base62x.class....

    WelliJhon 評論0 收藏0
  • -Base62x 新增 -Perl 版本技術實現 Base62x.pm

    摘要:同的其他版本相通,實現了跨編程語言運行時環境的數據安全交換。函數式編程的除了式的寫法,還提供了函數式編程的調用方式,列如下。函數式編程適合單一次啟動并運行的使用場景。 在此前的一篇Blog(-R/G2SW )中,-gMIS 吉密斯優化更新+分組項區段AddGroupBySeg/+復制AddByCopy等, 我們提到注冊動作registerAct: 改進增加 Base62x.class....

    oujie 評論0 收藏0
  • -Base62x 新增 -Perl 版本技術實現 Base62x.pm

    摘要:同的其他版本相通,實現了跨編程語言運行時環境的數據安全交換。函數式編程的除了式的寫法,還提供了函數式編程的調用方式,列如下。函數式編程適合單一次啟動并運行的使用場景。 在此前的一篇Blog(-R/G2SW )中,-gMIS 吉密斯優化更新+分組項區段AddGroupBySeg/+復制AddByCopy等, 我們提到注冊動作registerAct: 改進增加 Base62x.class....

    weij 評論0 收藏0
  • 加密解密算法介紹

    摘要:加密解密算法介紹算法目前常見有加密算法,散列算法,編碼算法,使用位關鍵字作為流加密算法加密技術通常分為兩大類對稱式和非對稱式。對稱性加密算法有用途對稱加密算法用來對敏感數據等信息進行加密數據加密標準,速度較快,適用于加密大量數據的場合。 加密解密算法介紹 算法目前常見有: 加密算法,散列算法,Base64(編碼算法),https(SSL使用40位關鍵字作為RC4流加密算法) 加密技術通...

    ThinkSNS 評論0 收藏0
  • Java Base64 編碼解碼方案總結

    摘要:是一種能將任意資料用種字元組合成字串的方法,而這個資料和字串資料彼此之間是可以互相轉換的,十分方便。實際測試編碼與解碼速度的話,提供的,要比套件提供的還要快至少倍,比提供的還要快至少倍。 Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。在實際應用上,Base64除了能將Binary資料可視化之外...

    sevi_stuo 評論0 收藏0

發表評論

0條評論

tainzhi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<