|
11
|
| Epaga Alex Reynolds · 技术社区 · 17 年前 |
|
|
1
16
预初始化数组比HashMap更快。大致如下:
您应该将此方法与其他方法进行基准测试(例如 Jon Skeet's 直接法),以确定哪种方法最适合您的应用程序。 |
|
|
2
14
哈希表的速度相对较慢。这很快:
另一种选择是尝试使用switch/case语句。如果数组在缓存中,它可能是可以的,但错过可能会代价高昂。 |
|
|
3
4
我不记得以前见过这种方法,但Mikko Rantanen在评论这个问题时指出了这个方程式, Code golf - hex to (raw) binary conversion
我不知道它会作为什么基准测试(也许有人可以将其添加到上面的基准测试中并运行它,但我猜%会降低性能),但它是一个整洁、简单的单行代码,用于单字符十六进制到十进制的转换。手柄0-9、A-F、A-F。 |
|
|
4
4
|
|
|
5
3
使用数组应该是最快的。 数组的大小可以是16、16^2、16^3、16^4等。。 将数字转换为比一个更大的组会提高性能。 将有一个最值得的最佳点,可能是4位数(64k表)。 |
|
|
6
2
老兄,我是微控制器程序员,在这个小小的世界里,速度真的很重要。将“ASCII”数字转换为字节(从“A”到0x0A)的最快方法是使用这小段代码
这个命令的神奇之处很简单,如果你查看ascii表,你会发现以0x3_开头的数字,以及分别位于0x4_和0x6_列的字母。 1) 如果你“或”传入的char(变量“c”)为0x20,你永远不会改变数字。..但对于字母,您将把大写转换为小写。因为我们只寻找A..F(A..F)值。…我不在乎别人。 2) 现在魔术。为了避免减法,我使用了加法运算符。0xD0与-0x30相同,0xA9与-a’+10相同; 比较生成的分支指令非常简单,没有表查找的开销,也没有“mod”或其他运算符! 享受。.. |
|
|
7
2
Character.getNumericValue(char)是另一种方式:
打印'a->例如,10’就像你想要的那样。其他人必须对静态metod调用与HashMap查找的效率发表评论,或者你可以自己检查一下。不过,对我来说,它似乎更干净/更易读。 |
|
|
8
2
简单但缓慢:
更快:
我不会为“性能问题”使用任何特殊代码。如果你真的经常使用它,JIT会创建编译后的代码,执行速度会变快。保持代码干净。您可以尝试编写一个性能测试,比较上述代码和任何特殊实现的执行时间——我打赌您不会得到显著的改进。 |
|
|
9
2
我认为你无法击败直接数组查找。
|
|
|
10
2
这是我对Greg代码的修改版本。在我的盒子上 轻微地 速度更快,但可能在噪音范围内。它避免了下限检查,不需要做任何减法。创建64K数组并避免 任何一个 边界检查似乎减缓了速度,但同样,在这样的时间安排下,几乎不可能确定什么是真实的,什么是噪音。
|
|
|
11
2
值得注意的是,在大多数测试中,您都在对%操作进行计时。此操作所需的时间与其他一些选项大致相同。
|
|
|
12
1
一个16位值的表,一次可以查找两位数字,应该比其他答案中建议的8位值数组更快。您将以两倍的速度迭代数据,以一半的频率访问数组,并访问shorts而不是bytes,所有这些都让CPU做得更少,做得更多。
8位值将预先计算为
32位值的表应该更快,这取决于你能负担得起多少空间。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 11 月前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 11 月前 |
|
|
Pengcheng · 这个简单的递归函数的输出是什么?你能详细解释一下吗? 12 月前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |