char[] to hex string exercise下面是我当前使用的char *到十六进制字符串的函数。我将其写为位操纵的练习。在AMD Athlon MP 2800上花费约7毫秒来十六进制一千万个字节的阵列。我有什么想念的技巧或其他方式吗? 如何使它更快? 用-O3 in g 编译
更新 添加了计时码 Brian R. Bondy:用堆分配的缓冲区替换std :: string并将ofs * 16更改为ofs << 4-但是堆分配的缓冲区似乎减慢了速度? -结果?11ms Antti Syk?ri:用 替换内部循环
结果?8ms Robert:用完整的256项表替换 HoyHoy:注意到它产生了不正确的结果 n n n 一次操作32位(4个字符),然后根据需要处理尾部。当我使用url编码进行此练习时,每个字符的全表查找都比逻辑结构快一点,因此您可能还想在上下文中进行测试以考虑缓存问题。 n 对于一个,而不是乘以 也不要使用 n n 不会有太大的不同... * pChar-(ofs * 16)可以使用[* pCHar n n n n n n n |