如何评估函数的计算复杂度?
How to evaluate computational complexity of a function?
我有一堆可以使用的函数,而且它们每秒被使用很多次。我想知道如何评估哪些函数对我的计算时间影响最大。
我该怎么办?
我正在尝试了解具体的要求:
与 SquareRoot(X)、(x) 的立方体、sigmoid 等其他常用函数相比?
通常,像这样的大多数数学函数都会在常数时间内求值。这仅仅意味着无论输入参数的值如何,都使用了有限数量的指令。通常通过一条指令,但有时通过一个短循环。
计算复杂度与评估函数的实际时间无关,仅与输入参数的增长有关。因此,如果您想衡量实际性能,您需要进行实际测量。
通常在讨论计算复杂性时,假设值适合任何使用的 data-type,即您不需要处理任意精度数学。
根据经验,简单的指令,如加法或乘法,是个位数的循环数,除法之类的是低两位数,而一些 'complex' 指令,如三角函数,可以达到三位数. 'slow' 在这种情况下仍将以纳秒为单位进行测量,因此仍然非常快,除非您需要计算数百万次。
我有一堆可以使用的函数,而且它们每秒被使用很多次。我想知道如何评估哪些函数对我的计算时间影响最大。
我该怎么办?
我正在尝试了解具体的要求:
与 SquareRoot(X)、(x) 的立方体、sigmoid 等其他常用函数相比?
通常,像这样的大多数数学函数都会在常数时间内求值。这仅仅意味着无论输入参数的值如何,都使用了有限数量的指令。通常通过一条指令,但有时通过一个短循环。
计算复杂度与评估函数的实际时间无关,仅与输入参数的增长有关。因此,如果您想衡量实际性能,您需要进行实际测量。
通常在讨论计算复杂性时,假设值适合任何使用的 data-type,即您不需要处理任意精度数学。
根据经验,简单的指令,如加法或乘法,是个位数的循环数,除法之类的是低两位数,而一些 'complex' 指令,如三角函数,可以达到三位数. 'slow' 在这种情况下仍将以纳秒为单位进行测量,因此仍然非常快,除非您需要计算数百万次。