gpt4 book ai didi

c++ - 是否有可能推出一个明显更快的 modf 版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:17 27 4
gpt4 key购买 nike

在我分析的应用程序中,我发现在某些情况下,此函数能够占用总执行时间的 10% 以上。

正在使用 MSVC++ 2008 编译器,以供引用...我不记得 modf 是否映射到单个指令,或者是否有可能使它更快。

另见 here关于 sqrt 函数的类似问题

与 sqrt 不同,我真的不知道 modf 是如何工作的。有组装操作吗?例如你可以这样做:

modf(float input,int &intPart, float &floatPart)
{
intPart= (int)input;
floatPart= input - intPart;
}

但我认为这会导致转换/转换等方面的惩罚。快速实现如何运作?

最佳答案

您在这里得到了很好的答案,但其他 90% 的时间都去哪儿了?

不要看每个例程的独占时间百分比

查看每行代码包含的 % 时间,如果可能,让它包括阻塞时间,而不仅仅是 CPU 时间。

那样的话,您可能会发现那部分时间,您甚至不需要 modf 函数或其他函数中。 p>

获取该信息的简单方法是 this technique .

补充:当您发现可以执行的优化时,预计总执行时间会减少,但不要指望百分比一定会下降。如果你摆脱其他东西,你在 modf 和/或 sqrt 中的时间百分比实际上可能会增加,或者如果你发现你可以记住它们,它们可能会减少(并且因此少称它们),例如。

在这种优化方法中,您可以将程序的执行历史视为一棵大调用树,而您要寻找的是可以修剪掉的整个分支。更重要的是,由于一行代码可以出现在调用树的多个分支中,因此将它修剪成一个会修剪掉所有的代码。

关于c++ - 是否有可能推出一个明显更快的 modf 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com