我将测试一些数学函数的性能,如 pow、exp 和 log 等。有没有可靠的测试数据?
由于这些功能在现有的现代系统库(如 glibm 或 OpenJDK)中进行了高度优化,一般随机输入可能会导致快速收敛,或触发一些短路径。
我将测试一些数学函数的性能,如 pow、exp 和 log 等。有没有可靠的测试数据?
由于这些功能在现有的现代系统库(如 glibm 或 OpenJDK)中进行了高度优化,一般随机输入可能会导致快速收敛,或触发一些短路径。
循环调用它们来测试吞吐量或延迟,这取决于下一个调用的输入是否取决于前一个调用的输出。可能包含来自中小型随机值数组的数据,用于吞吐量测试。
您希望您的编译器生成一个 asm 循环,该循环在函数调用之外做最少的工作,因此对您选择的任何语言和编译器使用适当的技术。(惯用的绩效评价方式?)
您可以反汇编或单步执行它们以查找依赖于数据的分支,以确定哪些输入范围可能更快或更慢。(或者对于像 glibc 这样的开源数学库,注释的源代码可能很好看。)