c# - 使用 goto 语句会比让 if 语句返回 false 更快吗?

标签 c# performance

我正在用 C# 编写一些非常复杂的实时分析算法,速度是我的程序成功的关键。如果我无法保持每秒 45 个变化数据的过程,那么 TCP 服务器另一端的 PID 控制环路将会振荡。我可以重新调整 PID 循环以以较慢的“fps”运行,但这是不可能的。只是想我会告诉你,在你写下“差异只有 10 毫秒,所以没什么”的答案之前,因为这 10 毫秒对我来说太长了。

如果像这样使用 goto 语句会更快吗?

if (GeneralDataDirection && UseMaxCandleData || GeneralDataDirection && !UseMaxCandleData)
            {
                Y1 = CandleStickWorkingData.Min();
                X1 = Array.IndexOf(CandleStickWorkingData, Y1);
                goto FirstPointCalculated;
            }

if (!GeneralDataDirection && UseMaxCandleData || !GeneralDataDirection && !UseMaxCandleData)
            {
                Y1 = CandleStickWorkingData.Max();
                X1 = Array.IndexOf(CandleStickWorkingData, Y1);
            }

FirstPointCalculated:

或者从第一个 if 子句中删除 goto 语句并让第二个 if 子句返回 false 会更快吗?

最佳答案

您根本不需要goto,只需使用else if:

if (GeneralDataDirection && UseMaxCandleData || GeneralDataDirection && !UseMaxCandleData)
{
     Y1 = CandleStickWorkingData.Min();
     X1 = Array.IndexOf(CandleStickWorkingData, Y1);
}
else if (!GeneralDataDirection && UseMaxCandleData || !GeneralDataDirection && !UseMaxCandleData)
{
     Y1 = CandleStickWorkingData.Max();
     X1 = Array.IndexOf(CandleStickWorkingData, Y1);
}

如果第一个条件为 true,则不会评估 else if 条件,它实际上已经是一个 goto

关于c# - 使用 goto 语句会比让 if 语句返回 false 更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39101793/

相关文章:

performance - 使用 Siege 和 AB 进行测试的准确度如何?

c# - .NET:Windows 窗体/控件性能

java - 我的代码效率低下还是任务太大?

c# - asp.net 中服务器传输中的 ThreadAbortException

c# - 如果花费的时间太长,则取消执行命令

c# - 您如何设置单个 TextBox 的样式?

c# - (datagridview) 根据列值更新行字体颜色

c# - 为什么我的异步代码调试的时候是同步运行的?

performance - OpenCL 如何分配工作项?

c++ - 如何在 C/C++ 中有效地计算 double 到两位小数?