Задать вопрос
LoliDeveloper
@LoliDeveloper
Линейная алгебра как смысл жизни

Как оптимизировать программу на С#?

Как можно научиться эффективно писать программы?
Я вот знаю что надо использовать Массив, а не Лист там, где это можно.
Но есть же что-то ещё подобное, о чём надо задумываться, пока пишешь программу. Как научиться думать, что эффективней использовать? Может книги есть какие-нибудь...
  • Вопрос задан
  • 195 просмотров
Подписаться 2 Простой 8 комментариев
Решения вопроса 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Вообще не думайте над этим. От слова совсем.

Я вот знаю что надо использовать Массив, а не Лист там, где это можно.

То есть вы намеренно усложняете себе жизнь и используете более тормознутое решение, потому что кто то вам сказал.

Общие правила такие:
* Не оптимизируй
* Пиши что бы было понятно
* Испортить успеешь всегда
* Ты всегда ошибешься
* Точно скажет только профайлер!!!

Вот вам пример уже допиленного для перрфоманса кода.

https://github.com/vkorotenko/FiasServer/blob/mast...

Посмотрите как используются вот эти переменные
private List<NormativeDocument> _normDocs;
private HashSet<Guid> _normDocIds;
Ответ написан
LoliDeveloper
@LoliDeveloper Автор вопроса
Линейная алгебра как смысл жизни
Использовать профайлер: он показывает, сколько времени и сколько раз выполняется каждый кусок кода, каждая функция, каждый сеттер + сколько оперативной памяти занимает+нагрузку на cpu, gpu, сеть + много чего ещё.
Вот пример: https://www.jetbrains.com/profiler/ , https://www.jetbrains.com/dotmemory/

Статьи
-Оптимизация производительности .NET (C#) приложений (конкретные советы с некоторым пояснением): https://habr.com/ru/post/466931/

-Как найти узкие места в приложении (профайлер): https://xakep.ru/2011/03/22/55102/

-Ну и Wiki Профилирование

Книги
Что касаемо умения правильно мыслить в таких вещах, то рекомендую классику:
"Искусство программирования" ("Art of programming") Д. Э. Кнута,
"Хакинг. Искусство эксплойта" ("Hacking: The Art of Exploitation") Джона Эриксона

И вообще читайте и решайте математику хотя бы часик-два в неделю
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Не напишут вам тут несколько пунктов, которые вы будете применять и всё у вас будет хорошо. Так это не работает.

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

Существует масса книг и решений. А вы демонстрируйте здесь всем своё не умение думать головой самостоятельно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы