2

一遍又一遍地使用 if 语句,或者使用它们一次并使用委托来根据 IF 语句的输出调用函数会更好吗?我想说答案显然是委托,但我不确定一遍又一遍地使用不同的方法是否比许多执行相同操作的 IF 语句更快或更慢。我希望我解释得对。

PS 如果重要的话,我需要知道的框架是 XNA。

4

2 回答 2

1

你有你的权衡。最好的答案已经被评论了,那就是对两者进行分析,然后弄清楚。IF 语句可能会占用更多 CPU,因为它必须一次又一次地进行比较。另一方面,使用委托会占用更多内存,这是您需要保留的另一个对象。

就我个人而言,我最喜欢做的事情(如果适用,不知道你问题的完整背景)是将你的 IF ELSE 语句变成一个 switch-case。这对于状态机和其他重复过程非常有效,而且您消除了 IF 附带的所有分支。但是,这是假设您正在检查的值都在范围内相对接近,否则您会给编译器带来很多痛苦。

于 2012-08-05T21:33:48.960 回答
1

当然,这是一种有用的技术。显然,只有少数 if 的委托是没有意义的,因为它们成本高昂且 CPU 无法轻松预测分支目标。对于很多人来说,一次性初始化的委托是有意义的。

目前尚不清楚盈亏平衡点在哪里。那是需要测量的。

于 2012-08-05T21:34:00.600 回答