网站维护年费,wordpress还是phpcms,数字媒体应用 网站开发,青岛网站推广公司排名现在几乎所有企事业单位、政府机构、军工系统等的IT生产系统都会用到Base64编码#xff0c;从RSA安全密钥到管理信息系统登录入口回跳#xff0c;目前越来越多的IT系统研发者开始使用 Base62x 替换 Base64. -Base62x 提供了一种无符号输出的Base64的编码方案#xff0c;在许… 现在几乎所有企事业单位、政府机构、军工系统等的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 42Nginx 1.12 PHP 7.0.通过脚本Command Line调用方式进行20万次编码任务对比测试数据 base62x 200000 timestart:1513077337.6748 timecost:0.30399990081787base64 200000 timestart:1513077337.9788 timecost:0.16817998886108base62x 200000 timestart:1513077401.2177 timecost:0.29567098617554base64 200000 timestart:1513077401.5134 timecost:0.17081189155579 base62x 200000 timestart:1513077424.234 timecost:0.30112099647522base64 200000 timestart:1513077424.5351 timecost:0.1718909740448 base62x 200000 timestart:1513077447.9861 timecost:0.29450607299805base64 200000 timestart:1513077448.2806 timecost:0.16546702384949 base62x 200000 timestart:1513077470.7367 timecost:0.45493698120117base64 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