.NET лучшая практика кодирования для достижения наилучшей производительности компилятора?

2

В большинстве случаев во время кодирования я обнаружил, что могу ли я писать код в меньшем количестве строк.

Я не знаю, когда мы записываем логин в меньшее количество строк в С#, то есть ли мы добились хорошей производительности или нет? компилятор компилирует код dotnet быстрее или нет?

Есть ли какой-либо источник учебника/книги/руководства, чтобы мы сделали контрольный список перед написанием кода.

  • 2
    Вы конкретно спрашиваете, сколько времени уходит на компиляцию кода? Или вас интересует производительность скомпилированного кода во время выполнения?
  • 0
    @Mark: хорошая точка зрения, я ответил с точки зрения производительности скомпилированного кода, но при повторном чтении возможно, что он может спросить о скорости компиляции.
Показать ещё 4 комментария
Теги:

8 ответов

11
Лучший ответ

Что мы должны учитывать, это писать лучшие коды, которые могут понять другие люди, объявлять имена переменных, поддерживать структуру и дизайн.

Конечно, мы можем написать логин в 3 строках кода. Означает ли это, что компилятор может быстрее компилировать/запускать его? Ну, мы должны помнить, что компиляторы в настоящее время очень умны. Написание небольшого количества строк кода не доказывает, что мы умны. И это также не означает, что компилятор будет быстрее компилироваться.

Составители оптимизируют наш код для байт-кодов очень хорошо, и поэтому мы должны рассмотреть возможность написания кода, рассматривающего конструкции и принципы, и, конечно же, человек может понять код как самостоятельный код, документированный.

Здесь я цитирую, что сказал Мартин Фаулер:

Любой дурак может написать код, который компьютер может понять. Хорошо программисты пишут код, который люди могут понять.

Надеюсь, это поможет!

С уважением,
Мунит

  • 0
    Спасибо Муним, я пойму вашу точку зрения. Абсолютно верно. Есть ли какие-либо ссылки на дизайн и принцип, рекомендации рекомендуются для asp.net
  • 1
    Мне нравится цитата
4

Честно говоря, я думаю, что большинство людей предпочитают читаемый и поддерживаемый код по коду, который скомпилируется на полсекунды быстрее.

Если вы попадаете в ситуацию, когда ваше решение требует минут для компиляции, тогда вы явно имеете дело с большим количеством кода, и читаемость становится все более важной.

Изменить для добавления

Следуя некоторым комментариям к OP, работа может хорошо купить вам более быстрые процессоры и SSD, если вы последуете за совет XKCD:

Изображение 174551

4

Нет, писать код в меньшем количестве строк на языке высокого уровня, таком как С#, почти никогда не будет иметь существенного влияния на производительность. Компиляторы предназначены для оптимизации этих вещей в любом случае.

Ключ к кодированию для достижения наилучшей производительности - сначала сделать код удобным и естественным. Чаще всего это будет оптимизировано вашим компилятором в хорошо исполняемый код, потому что компилятор был разработан, чтобы распознавать эти нормальные структуры и оптимизировать их наилучшим образом.

Избегайте сильно вложенных петель, где это возможно. Не выполняйте работу несколько раз в цикле, когда это можно сделать один раз до начала цикла. Избегайте делать несколько запросов к базе данных или сети, когда 1 выполнит задание.

Производительность проверяет ваш код, когда он закончен, и найдите узкое место. Затем потратьте время на изучение этого узкого места, чтобы узнать, можете ли вы его оптимизировать. Это даст вам лучшее улучшение производительности для вашего времени. Не тратьте время на ранний период в проекте, пытаясь оптимизировать мелочи, пока не узнаете, что они сильно влияют на производительность.

Вашими наибольшими достижениями производительности могут быть доступ к файлам, доступ к базе данных, доступ к веб-сервисам. Операционный материал, который вы только что делаете в коде, вряд ли может сильно пострадать.

  • 0
    NB. В .NET есть определенные вещи, которые не следует перемещать из цикла (например, проверки длины массива) - это особые случаи времени выполнения, чтобы избежать всех проверок в цикле, если у вас есть проверка в выражении элемента управления. Если вы удалите проверку длины из выражения управления цикла, все массивы обращаются к циклу с проверкой be: в целом медленнее.
  • 0
    Вы, один из моих коллег, всегда полагаете, что вместо передачи объекта формы из уровня представления в слой бизнес он предпочитает передавать переменные в качестве аргумента по ссылке. И, по его словам, передача аргумента в виде арефера быстрее по сравнению с передачей объекта.
2

"меньше числа строк"? Это не так важно. Вычисление n-го числа Фибоначчи может быть реализовано рекурсивно с экспоненциальной сложностью или с использованием умножения матрицы в логарифмическом времени с большим количеством строк кода. Колмогоровская сложность не всегда сводится к минимуму.

Посмотрите правило: избегайте ненужного бокса, как в:

int x=3; Console.WriteLine("x ={0}", x); //wrong; but: Console.WriteLine("x ={0}", x.ToString());

Я всегда рассматривал книгу Эффективный С#: 50 конкретных способов улучшить ваш С# в качестве хорошей книги, показывающей, как писать лучший код в С#; например, это объясняет, почему вы должны использовать foreach вместо того, чтобы выполнять итерацию по коллекции.

1

Вы попросили книгу или статью. Одна из лучших книг для лучших практик в .NET -

Книга написана членами самой команды разработки .NET.

  • 0
    Я читал эту книгу, и лично, хотя это хорошая книга, она также не обновлялась со времени .net 2. Я думаю, что кое-что изменилось, и она, очевидно, не распространяется на новые языковые особенности. Вы можете обнаружить, что обзор правил stylecop / fxcop даст вам более полное представление о современных лучших практиках.
  • 0
    У меня есть вторая редакция, нацеленная на .NET 3.5, но fxcop - хорошая альтернатива
Показать ещё 1 комментарий
1

Если вы спрашиваете, быстрее ли компилировать меньше строк кода, чем компилировать больше строк кода, ответ зависит от этого.

У вас может быть 300 строк, которые собираются намного быстрее, чем 50 строк.

0

см. ссылку на эту книгу "Повышение производительности и масштабируемости .NET-приложений": http://msdn.microsoft.com/en-us/library/ff649152.aspx

Это очень хороший учебник, который охватывает большую часть .NET-приложения.

0

Несмотря на то, что ASP.NET не является специфичным, я могу настоятельно рекомендовать эту бесплатную ссылку на руководство по кодированию С#/VB.NET Стивена Сартейна в SubMain. Я не думаю, что он будет рассказывать о том, как писать код, который будет компилироваться быстро, но я не совсем уверен, почему это будет где-то рядом с вашим списком проблем. Просто волнуйтесь о написании хорошего кода.

http://submain.com/products/guidelines.aspx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню