我有以下代码
void Fun2()
{
if(X<=A)
X=ceil(M*1.0/A*X);
else
X=M*1.0/(M-A)*(M-X);
}
我想使用 C99 快速编程,请考虑以下评论。
X
和A
是32位变量,我将它们声明为uint64_t
,而M
> 作为static const uint64_t
。此函数被另一个函数调用,每调用
<n
次,A
的值就会更改为新值。执行时间需要优化,CPU为Core i3,OS为windows 7
我想要实现的数学模型是
F=ceil(Max/A*X) if x<=A
F=floor(M/(M-A)*(M-X)) if x>A
为了清晰起见,避免混淆,我之前的帖子是 我有以下代码
void Fun2()
{
if(X0<=A)
X0=ceil(Max1*X0);
else
X0=Max2*(Max-X0);
}
我想使用 C99 快速编程,请考虑以下评论。
X0、A、Max1 和 Max2 是 32 位变量,我将它们声明为 uint64_t,而 Max 声明为 static const uint64_t。
该函数被另一个函数调用,每调用 n 次,Max1、A、Max2 的值就会更改为随机值。
我在 Windows 7 和 codeblocks 软件中工作
谢谢
最佳答案
在没有特定目标的情况下优化这样的代码是完全没有意义和不可能的。为此,您需要具备以下知识:
- 使用哪种 CPU。
- 使用哪个操作系统(如果有)。
- 对上述内容有深入的了解,达到您对系统了解更多的程度,或者与为给定编译器端口编写优化器的人一样了解系统。
- 哪种优化最重要:执行速度、RAM 使用情况或程序大小。
在不了解上述情况的情况下,您可以进行的唯一优化是在算法级别。发布的代码中没有这样的算法。
因此,在提供更多信息之前,任何人都无法回答您的问题。
关于c - 优化C代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098280/