📌  相关文章
📜  如何解决在 javaScript 中使用 performance.now() 方法时出现的问题?

📅  最后修改于: 2022-05-13 01:56:37.685000             🧑  作者: Mango

如何解决在 javaScript 中使用 performance.now() 方法时出现的问题?

任何编码人员,只要有足够的时间,都可以解决问题,唯一重要的是。性能在软件中起着非常重要的作用。性能好的网站可以吸引更多的用户,而性能相对较差或较差的网站则无法做到这一点。随着 JavaScript 在制作大型网站项目中的使用日益增加,确保我们的代码速度非常重要。但是如何确保代码足够快!通常,检查 JavaScript 中函数性能的最佳方法是内置的performance.now()方法。
为了衡量一个函数的性能,即一个函数需要多少时间执行或计算运行时间, performance.now() 方法被广泛使用。它返回自程序开始以来经过的时间。通过查看以下问题陈述,这个概念会更加清晰。
示例:我们将看到遍历 100000 个元素的数组需要多少时间。

  • 程序:
javascript


  • 输出:
call to the above function took1385.733816999942milliseconds

在上面的示例中,可以清楚地看到我们如何检查函数使用performance.now()的速度。此外,此方法返回一个浮点数,以毫秒为单位反映当前时间(精确到千分之一毫秒)。这是衡量函数性能的一种非常简单的技术。这个时间不是固定的,每次我们再次运行代码时它可能会改变。随着数组中元素数量的增加,函数变得更慢并且运行时间增加。如果我们在不同的计算机上运行相同的程序可能需要不同的时间,原因是 CPU。运行某项函数或执行某项任务所需的时间取决于 CPU 的强大程度,以及特定计算机上正在运行的其他程序。
performance.now() 的问题:这里会出现一个问题,因为如果两个人编写了完全相同的代码,我们不能断定运行时间较短的用户编写了更好的代码。这里需要大 O 表示法
Big-O 表示法: Big O 用于衡量不同功能的性能。同一个问题可以有不同的解决方案,但在这些解决方案中,哪一个更好,更有效。这就是大 O 所说的。 Big O 不会在几秒钟内测量事物。相反,它关注的是运行时间随着操作数量的增加而增长的速度。它提供了计算功能性能的标准方法。
因此,对于上面的示例,即使运行时间可能因人而异,但为同一程序计算的 Big O 对每个人来说都是相同的。由于算法的运行时间可能在相同大小的不同输入之间有所不同。我们使用 Big -O 来计算最坏情况的时间复杂度,即给定大小的输入所需的最长时间。这就是我们计算不同函数的 Big O 的主要原因。
举个简单的解决魔方的例子,多久可以解决,因人而异,一个人可以在30秒内解决,另一个可能需要几个小时才能解决。我们可以定义最坏的情况,即一个人解决立方体所花费的最长时间。我们正在谈论的情况也是如此,Big-O 告诉最坏的时间,我们可以以标准方式估计函数的性能。对于同样的问题陈述,如果我们计算 Big-O,它将是 O(n)。这意味着运行时间将随着输入的大小线性增加,输入中的操作数越多,函数所花费的时间就越多。 Big-O 是一种更精确的计算性能的方法,因为它告诉最坏的情况,即函数执行所需的最长时间。
Big O 表示法的解决方案:通过查看给定的函数,我们可以看到数组的大小在计算函数的运行时并不重要。该函数将在O(1)时间内运行,也称为恒定时间。无论输入数组是由 1 个项目、100 个项目还是 1000 个项目组成,这个函数仍然只需要一步。

  1. O(1)
  2. O(1)
  3. O(1)

因此,可以得出结论, Big-O是一种更精确的计算性能的方法,因为它告诉了最坏的情况,即函数将执行的最长时间,而且它给出了一个标准的解决方案,适用于相同类型的所有其他功能。