哪个执行时间更少?

Posted

技术标签:

【中文标题】哪个执行时间更少?【英文标题】:Which takes less execution time? 【发布时间】:2020-09-30 22:49:17 【问题描述】:

这将花费更少的执行时间;一个switch-case还是一个方程?

我想让页面越暗淡,就像弹出窗口一样,层叠的窗口越多。

所以如果我有 1 个子窗口;调光百分比可以是20%,2个子窗口; 40%; 4个子窗口; 50% .. 等等,所以随着窗口的层叠,它会变得不那么暗,最终会停在某个值上,例如 55%,所以它永远不会太暗。

它应该遵循的等式是:f(x) = 5x^4/8 - 65x^3/12 + 95x^2/8 + 155x/12

这应该给出如下值:

f(x) |  0  | 20 | 40 | 50 | 55 |
  x  |  0  |  1 |  2 |  3 |  4 |

x 的域 = [0,4]

鉴于; f(x) = 所需的调光量,x 是窗户的数量 级联

在执行时间方面这是一个更好的实现吗?还是开关盒更适合比较当前打开的窗户数量与所需的调光百分比?

我不知道每个 switch case 与上面提到的公式相比使用了多少条指令?

【问题讨论】:

等式可能要快得多——但这真的不用担心,因为我非常怀疑这会成为 CPU 瓶颈 【参考方案1】:

如果性能确实是个问题,请不要使用switch 或等式。使用数组。

function f(x) 
    const dim_pct = [0, 20, 40, 50, 55];
    return dim_pct[x];

【讨论】:

谢谢,巴马尔。是的,我认为这是最有效的方法。也不受方程式的限制。【参考方案2】:

查看在 javascript 中执行需要多长时间:

console.time('test');
/* run code here */
console.timeEnd('test');

【讨论】:

以上是关于哪个执行时间更少?的主要内容,如果未能解决你的问题,请参考以下文章

哪个向量和地图,使用更少的内存(大量数据和未知大小)

0708关于理解mysql SQL执行顺序

在 RabbitMQ 中哪个更贵,每个交换多个队列,还是多个交换和每个交换更少的队列?

mysql 优化

如何确定哪个查询执行时间最长

更少的恒定时间迭代需要更多时间 - c++ 编译器依赖性?