2016-04-01 3 views
-1

Мне было интересно, есть ли в информатике лучшая практика относительно того, стоит ли использовать номер строки кода или количество инструкций, когда 2 тянуть в разные стороны?Количество строк кода VS Количество инструкций

Пример 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: приведенный ниже код имеет больше строк, но 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 

Вопрос: есть ли наилучшая практика, относительно которой лучше всего?

ответ

0

Если я правильно понимаю вас, вы делаете вычислительную скорость по сравнению с читабельностью. В этом случае на самом деле нет лучшей практики, поскольку это зависит от обстоятельств: для небольшой программы, которая должна работать как можно эффективнее, я бы выбрал вариант 2, так как это критическая скорость. Для всего остального (что в основном относится к современным, быстрым компьютерам), я бы не стал прилагать усилия к оптимизации скорости, пока это действительно не проблема. Гораздо важнее то, что код читаем и обслуживаем. Необходимые часы работы, потраченные на то, чтобы понять какой-то уродливый код, который работает быстро, намного дороже, чем некоторое обновление аппаратного обеспечения, чтобы сделать код быстрее.

+0

Спасибо за ваш ответ. В моей компании мы работаем на ноутбуке. Стандарт ЦП в 2013 году был i7-3635QM, но теперь стандарт составляет i7-5500U, который медленнее. Когда я начал писать программу, я предположил, что скорость процессора будет удваиваться каждые 18 месяцев и что задача, которая заняла 3 минуты, будет выполнена быстрее. Но это не так, поэтому я всегда стараюсь сбалансировать скорость и читаемость кода. – serge

Смежные вопросы