当前位置: 首页 > 知识库问答 >
问题:

在进行“小于或等于”比较时,哪种方法更快?[副本]

齐迪
2023-03-14

A<=bA 更快(或执行更好)吗?

如果你们需要一种语言来回答我的问题,那么我会加入javascript,因为我用得最多。


共有1个答案

田阳泽
2023-03-14

首先,让我们记住,任何编程语言中的所有代码操作都在某个时刻(无论是在运行时还是编译时)被提炼为它们的机器代码等价物,以便实际执行,因为处理器(如CPU)只理解机器代码,而不理解C#、JavaScript或GO。

考虑到这一点,我们可以将这两个表达式分解为更接近其基本部分的部分:

  • A<=B正好是一个操作,不能再分解了
  • A 是多个操作,这些操作(不涉及计算机体系结构)大致可分解为:
    • 计算B+1
    • B+1的答案存储在缓存中(让我们将其称为C)
    • 从缓存中读取C
    • 然后计算A

    永远不要忘记,过早的优化是万恶之源。您不应该关心这种级别的优化,因为它几乎可以保证无关紧要。CPU速度很快。你的时间和劳力最好花在更明显的密集和耗时的操作上,只有当你发现它比你想要或需要的要慢的时候。

    如果您愿意,这里有一个实际的基准测试:https://jsben.ch/kvrug。它在多次运行中返回不一致的结果,这有助于说明为什么这对于实际使用并不重要。像往常一样,在一些边缘情况下,这个级别的优化可以发挥作用,但总的来说,这并不重要。

 类似资料:
  • 实际上,我正在通过其中一个教程,其中提到,当我们需要实现比较器接口时,我们可以覆盖equals方法(但是没有必要覆盖)。 所以,只是为了更好地理解 我重写了下面的方法 测验JAVA MyComparator.java 导入java。util。比较器; 对于其他场景 现在不管我从equals方法返回什么,不管是真是假。。它返回相同的树集值。如果有人能澄清equals方法的函数性的概念,请

  • “如何根据员工对象的id或名称对集合进行排序”。为此,我们可以使用两个接口,即这似乎是常见的面试问题之一 但是我看不出为什么我应该同时使用这两个来对employee对象进行排序 我一直在思考实现了无法实现的功能。我明白,如果对象(所比较的实例变量)具有自然顺序,那么是正确的选择。但是,如果需要自定义排序(例如字符串长度),那么可以编写这里我的观点是,只有当客户机希望按照其他条件对数据进行排序时才需

  • 以下代码的输出为假 我不明白。我想它会返回true。在我为SCJP做准备时,了解其背后的原因可能会有所帮助。有人能帮忙吗?

  • 本文向大家介绍关于C++中定义比较函数的三种方法小结,包括了关于C++中定义比较函数的三种方法小结的使用技巧和注意事项,需要的朋友参考一下 C++编程优与Pascal的原因之一是C++中存在STL(标准模板库)。STL存在很多有用的方法。 C++模板库中的许多方法都需要相关参数有序,例如Sort()。显然,如果你想对一个集合进行排序,你必须要知道集合中的对象,那个在前那个在后。因此,学会如何定义比

  • 问题内容: 如果我正在从文本中扫描 //我想将行中的下一个char与 // 像这样: 我知道那不存在,但是在这种情况下可以使用任何类似的东西吗? 问题答案: 您的代码将类似于… 请注意,在调用之后,实际上已获取了该值,因此,如果您想进一步使用它,最好保留该变量,例如:

  • 问题内容: 我试图通过将结果对象与原始对象进行比较来验证例程的序列化和反序列化。这些例程可以序列化任意的和深层嵌套的类,因此,我需要一个比较例程,该例程可以提供原始实例和最终实例,并反射性地遍历每种值类型并比较这些值,然后迭代地浸入引用类型以比较值。 我已经尝试过Apache Commons Lang,但这似乎并没有进行很深入的比较,它只是比较引用类型是否相等,而没有深入研究它们: 以下代码说明了

  • 问题内容: 我注意到最近有一段代码直接比较两个整数列表,如下所示: 这似乎有点奇怪,但我想如果所有元素都大于,它将返回,如果每个元素相等或元素大于则返回False 。所以我测试了它: 好的,行得通。和: 但是当它变得更加模糊时: 要么: 结果有点陌生。python实际在做什么?看来它返回的结果偏向于第一个列表,其中最左边的元素大于相应的元素? 问题答案: 从比较序列和其它类型在Python教程: