Base64编码及编码性能测试 [改进]
来源:互联网 发布:电子相册软件哪个好 编辑:程序博客网 时间:2024/05/21 16:29
原创文章,欢迎转载,转载请注明出处:http://blog.csdn.net/jmppok/article/details/17137839
参考:Base64编码及编码性能测试
主要是针对文章中 Base64.cpp中的_getBase64Char(char c)和_getCharOfBase64(char c)两个函数进行了改进.
原来代码为:
char _getBase64Char(char c) { if(c>=0 && c<26) { return 'A'+c; } else if(c>=26 && c<52) { return 'a'+c-26; } else if(c>=52 && c<62) { return '0'+c-52; } else if(c==62) { return '+'; } else if(c==63) { return '/'; } } char _getCharOfBase64(char c) { if(c>='A' && c<='Z') { return c-'A'; } else if(c>='a' && c<='z') { return c-'a'+26; } else if(c>='0' && c<='9') { return c-'0'+52; } else if(c=='+') { return 62; } else if(c=='/') { return 63; } }
改进后的代码
const char * base64_charset="ABCDEFGHIJKLMNOPQRSTUVWXYZ""abcdefghijklmnopqrstuvwxyz""0123456789""+/"; char _getBase64Char(char c){return base64_charset[c];}char _getCharOfBase64(char c){switch(c){case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':case 'G':case 'H':case 'I':case 'J':case 'K':case 'L':case 'M':case 'N':case 'O':case 'P':case 'Q':case 'R':case 'S':case 'T':case 'U':case 'V':case 'W':case 'X':case 'Y':case 'Z':return c-'A';case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':case 'g':case 'h':case 'i':case 'j':case 'k':case 'l':case 'm':case 'n':case 'o':case 'p':case 'q':case 'r':case 's':case 't':case 'u':case 'v':case 'w':case 'x':case 'y':case 'z':return c-'a'+26;case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':return c-'0'+52;case '+':return 62;case '/':return 63;}}其他代码不变。
经过测试,改进后的Base64编码效率可提高8倍左右。
200K encode 1000次 327ms
500K encode 1000次 671ms
1M encode 1000次 1388ms
- Base64编码及编码性能测试 [改进]
- Base64编码及编码性能测试
- Base64编码及解码
- Base64编码及代码
- Base64编码及解码
- Base64编码原理及编码、解码实现
- Java Base64编码及解码
- Base64编码及期作用
- MD5加密算法及BASE64编码
- MD5加密及BASE64编码
- Base64编码图片及MIME
- Base64编码
- Base64编码
- base64编码
- BASE64编码
- Base64编码
- BASE64编码
- base64 编码
- STM32之NVIC理解
- navigator.onLine 离线检测
- 获取amlogic源码
- Topcode 599 div2 第一题
- 交换机的背板容量、交换容量和包转发能力2
- Base64编码及编码性能测试 [改进]
- iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法
- 本博客说明
- chrome启动参数设置
- 电话本------改进值分离命令和参数
- 10^4号遇骗遭遇未果の愤怒版
- mobileazure和高德地图查看已记录位置
- Android:项目关联Library
- java.socket exception