大佬教程收集整理的这篇文章主要介绍了哪个更快的ruby – 一个哈希查找或一个case case的函数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
def get_name id case id when 1 "one thing" when 3 "other thing" else "default thing" end end
我正在考虑用哈希查找替换,像这样:
NAMES = { 1 => "one thing",3 => "other thing",} NAMEs.default = "default thing"
我的直觉是,散列会更快,因为(再次,我猜测),case语句必须依次检查每个条件(找到O(n)而不是O(1)).但是让我们检查一下!
完整的基准代码为https://gist.github.com/25基本上,它生成一个文件来定义适当的case / hash,然后使用它们.我也去了一个方法调用的哈希查找,所以开销不会是一个因素,但在现实生活中,没有理由应该停留在一个方法中.
这是我得到的.在每种情况下,我正在进行10,000次查找.时间是以秒为单位的用户时间
CASE statement,10 items 0.020000 Hash lookup,10 items 0.010000 CASE statement,100 items 0.100000 Hash lookup,100 items 0.010000 CASE statement,1000 items 0.990000 Hash lookup,1000 items 0.010000
所以,它看起来很像case语句是O(n)(没有令人震惊的那里).还要注意,即使在case语句中,10K查找仍然只有一秒钟,因此除非您正在执行这些查找的指标,否则您最好关注其余的代码.
以上是大佬教程为你收集整理的哪个更快的ruby – 一个哈希查找或一个case case的函数?全部内容,希望文章能够帮你解决哪个更快的ruby – 一个哈希查找或一个case case的函数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。