我已经用Valgrind和Callgrind对程序进行了分析,发现大部分时间都用在nearbyint$fenv_access_off
函数中。
我发现它是LLVM固有的,但是哪个Rust语言构造使用它?我该如何避免呢?
最佳答案
进行search for nearbyint
会找到相关的符号nearbyintf32
和nearbyintf64
。这些are documented作为返回最接近的整数到浮点值。但是,似乎没有对该特定函数的调用。fenv_access_off
appears to be an OS X specific aspect of the math library。
跟踪中的另一件事是round
。我可以相信round
可以使用nearbyint
。我也没有在标准库中看到round
的任何情况,这些情况似乎会发生在紧密的循环中。
除此之外,任何事情都是纯粹的猜测。
关于performance - 什么Rust构造函数使用来自libsystem_m的nearingint?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34078460/