【问题标题】:Number of lines of code VS Number of instructions代码行数 VS 指令数
【发布时间】:2016-04-01 14:26:47
【问题描述】:

我想知道在计算机科学中是否有一个最佳实践,即当两者拉向不同方向时,是否支持代码行数或指令数?

示例 1:下面的代码行数较少,但 if 是针对每个 g 评估的,而它们不依赖于 g。

For g = 0 To UBound(myRegions)
    If Cells(2, j) = "" And Cells(myRowToBeAllocated, 4 + j) <> 0 Then
        Cells(2, g) = Worksheet("Test").Cells(k, q)
    ElseIf Cells(myRowToBeAllocated, 4 + j) <> 0 Then
        Cells(2, g) = Worksheet("Test").Cells(2 * k, q / 2)
    End If
Next g

示例 2:下面的代码有更多的行,但不是为每个 g 评估 ifs,因此下面导致计算执行的指令更少。

If Cells(2, j) = "" And Cells(myRowToBeAllocated, 4 + j) <> 0 Then
    For g = 0 To UBound(myRegions)
        Cells(2, g) = Worksheet("Test").Cells(k, q)
    Next g
ElseIf Cells(myRowToBeAllocated, 4 + j) <> 0 Then
    For g = 0 To UBound(myRegions)
        Cells(2, g) = Worksheet("Test").Cells(2 * k, q / 2)
    Next g
End If

问题是:对于哪一个最好,是否有最佳实践?

【问题讨论】:

    标签: coding-style standards


    【解决方案1】:

    如果我理解正确,您将计算速度与可读性放在一起。在这种情况下,实际上并没有最佳实践,因为它取决于具体情况:对于必须尽可能高效运行的小程序,我会选择选项 2,因为它对速度至关重要。对于其他一切(现代、快速的计算机大多是这种情况),我不会在速度优化上投入精力,直到它确实是一个问题。更重要的是代码的可读性和可维护性。试图理解一些运行速度快的丑陋代码所需的工作时间比一些硬件升级以使代码执行得更快要昂贵得多。

    【讨论】:

    • 感谢您的回答。在我的公司,我们在笔记本电脑上工作。 2013 年的 CPU 标准是 i7-3635QM,但现在的标准是 i7-5500U,速度较慢。当我开始编写程序时,我假设 CPU 速度将每 18 个月翻一番,并且需要 3 分钟的任务会更快地完成。但事实并非如此,所以我一直在努力平衡速度和代码可读性。
    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2022-11-06
    • 2017-08-05
    相关资源
    最近更新 更多